冷冷

V1

2023/01/04阅读:25主题:嫩青

springboot 请求报文加解密

背景

在一些安全性要求较高的项目中,我们希望客户端请求数据可以做到数据加密,服务器端进行解密。(单纯的 HTTPS 仍难以满足安全需要。)

快速上手

① 添加依赖

<dependency>
    <groupId>com.pig4cloud</groupId>
    <artifactId>pigx-common-encrypt-api</artifactId>
</dependency>

② 配置加解密密钥

在对应微服务的nacos 配置文件中进行配置

security:
  api:
    encrypt:
      aes-key: 1234567812345678 # 注意必须为16位

③ 普通 Get 请求

get query param 请求
get query param 请求
 @ApiDecryptAes // 对请求进行解密 请求格式为 对请求进行解密 请求格式为 xx?encryption=base64密文
 @ApiEncryptAes // 对接口结果进行加密输出 格式为 {"encryption":"加密后R"}
 @GetMapping("/test")
 public R test(String param) {
  return R.ok();
 }

④ 通用 json body 请求

post json body 请求
post json body 请求
@ApiDecryptAes // 对请求进行解密 请求格式为 {"encryption":"base64密文"}
@ApiEncryptAes // 对接口结果进行加密输出 格式为 {"encryption":"加密后R"}
@PostMapping("/test2")
public R test2(@RequestBody String param) {
  return R.ok();
}

PIGX 前端处理

① 配置加密密钥

注意和上文后端加解密配置保存一致

② axios 请求配置


request({
    url'xxx',
    headers: {
      'Enc-Flag''true'
    },
    method'get',
    params: { xxx }
  })

分类:

后端

标签:

后端

作者介绍

冷冷
V1