一、背景

在生产环境中为了避免客户流失、隐私泄露,常常需要对数据在DB、日志、响应各个环境进行脱敏处理。

二、加密方法

常见的加密方法:

  1. 密码摘要 + 盐(不可逆)
  2. AES加密
  3. 数据脱敏,使用*替换

三、ID信息安全

像数据量比较小的场景,往往ID只是数据库自增或者ID服务自增,因为ID是连续性,那么攻击者可以使用ID穷举,直接将数据爬完。 安全保护可以不局限于:

  1. 数据权限
  2. 反爬
  3. 限流
  4. 风控黑名单
  5. ID不使用自增,使用类似于Snowflake,Id还是顺序的,保证DB顺序写入性能,同时增加穷举难度
  6. ID加密

四、ID加密实现

实现过程

  1. 自定义注解​​@Encrypt​
  2. 配置加密AES密匙
  3. 实现​​PathVariableMethodArgumentResolver​​​,​​RequestParamMethodArgumentResolver​​​,​​RequestResponseBodyMethodProcessor​​​,​​ServletModelAttributeMethodProcessor​​​,​​JsonDeserializer​​​,​​JsonSerializer​​​,对​​@Encrypt​​的参数进行加解密

可以根据需要设置加密方式(AES、XOR、自定义混淆算法),加解密开关,权限管理等等