实现逻辑
- 使用了@ControllerAdvice对请求数据进行预处理
- 随机生产16为字符串,使用RSA加密生成key
- 再对数据进行AES加密,使用步骤2key进行加密
使用方法
依赖
<repositories>
<repository>
<id>jitpack.io</id>
<url>https://jitpack.io</url>
</repository>
</repositories>
<dependency>
<groupId>com.gitee.godchin</groupId>
<artifactId>common</artifactId>
<version>v2.0.2.24</version>
</dependency>
设置公钥和私钥
encry.public.key=
decrypt.private.key=
注解介绍
public @interface SecurityParameter {
/**
* 入参是否解密,默认解密
*/
boolean inDecode() default true;
/**
* 出参是否加密,默认加密
*/
boolean outEncode() default true;
}
使用举例
- controller
/**
* 数据加密
* @param user
* @return
*/
@RequestMapping("/encry")
@SecurityParameter(inDecode = false)
public Result save(@RequestBody DfqUsers user) {
System.out.println(JSON.toJSONString(user));
return Result.success(user);
}
/**
* 数据解密
* @param user
* @return
*/
@RequestMapping(value = "/decrypt",method = {RequestMethod.GET,RequestMethod.POST})
@SecurityParameter(outEncode = false)
public Result jiemi(@RequestBody Object user){
return Result.success(user);
}
-
postman调用
-
加密
-
解密
-