encipher:SpringBoot接口AES加密

AES简介描述:

AES加密算法原理的详细介绍与实现_TimeShatter的博客-CSDN博客

encipher:

基于SpringBoot框架,AES加密,JDK17SpringBoot3.0,采用注解配置的方式来实现。

码云:https://gitee.com/QinXianZhong/encipher.git

GitHub:https://github.com/benjiuruci/encipher.git

使用方法:

使用maven引入框架

必须使用最新版本

<!-- https://mvnrepository.com/artifact/com.gitee.qinxianzhong/encipher -->
<dependency>
   <groupId>com.gitee.qinxianzhong</groupId>
   <artifactId>encipher</artifactId>
   <version>1.0.2</version>
</dependency>

首先使用方法生成密钥:

GenerateKeyUtils.generateKey(16 or 32) ,生成16或32位随机字符传密钥

生成32位的字符串随机密钥: aVG5oHI8U2qRgBqcFgzlfwkqUP3RvzKP

在application.yml配置

spring:
    encipher:
        secretKey: aVG5oHI8U2qRgBqcFgzlfwkqUP3RvzKP  //密钥
        vectorKey: //向量密钥
        method: //ECB CBC 两种加密方式  ECB模式下不需要vectorKey密钥

使用ECB模式演示

注解使用:

提供两种方式的加解密注解:@ApiEncrypt    @Encryption @Decryption

@ApiEncrypt:作用在Controller类方法上,实现Controller类下面所有的方法加解密

@ApiEncrypt
@RestController
@RequestMapping("/test")
public class TestController {


    @PostMapping("/setUser")
    public void setUser(@RequestBody User user){
        System.out.println(user.toString());
    }

    @GetMapping("/getUser")
    public User getUserName(String name){
        User user = new User(name,33,"南京", "男");
        System.out.println("name:" + name);
        return user;
    }

}

在Controller上加上@ApiEncrypt注解,下面看实现结果,可以使用在线AES加解密网站来测试。

使用刚刚生成的密钥来生成加密结果:Zp6zJ2sMqtn3tvWTm9a+VQ==,使用这个加密过的内容,请求接口

请求控制台

name:张宇

用在线AES加解密网站看看接口返回的内容是什么

这就是 @ApiEncrypt 注解的作用,请求方法全部实现加解密。

@Encryption 对请求返回的内容加密 @Decryption 对请求传参的内容解密

看看这两种注解的使用方法

@RestController
@RequestMapping("/test")
public class TestController {

    @Decryption
    @PostMapping("/setUser")
    public void setUser(@RequestBody User user){
        System.out.println(user.toString());
    }

    @Encryption
    @GetMapping("/getUser")
    public User getUserName(String name){
        User user = new User(name,33,"南京", "男");
        System.out.println("name:" + name);
        return user;
    }

}

@Decryption 解密注解放在了 /test/setUser 请求接口上面,请求接口传参加密内容会自动解密出来

请求方法有@RequestBody注解,所有传json格式的加密内容

解密内容:

@Encryption对返回的内容加密,@Encryption注解放在了 /test/getUser 请求接口上面,请求传参不会解密,返回内容会加密

解密内容

两个注解同时应用到一个方法上面,请求传参解密,返回内容加密

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值