在网关层Zuul对数据进行加解密设计

请求头参数说明:

参数 描述
encrypt-mode 加密方式:0(或没有该key).不加密 1.DES结合RSA加密 2.DES加密 3.AES加密(目前使用该方式)
resp-encrypt 对返回的数据进行加密, 1.加密 0(或没有该key).不加密
url-param-decrypt 对url的参数进行解密, 1.需要解密 0(或没有该key).不需要解密
secret-key des的盐值,需要使用rsa进行加密
  1. json请求的数据加密(body)
{"request":"AES加密后的数据"}
  1. get请求的参数加密,在请求头中设置url-param-decrypt=1
http://127.0.0.1:8041/user-service/test?request=KXBUFIFtuVbqNtpLMe/yVg==
  1. 表单请求的数据加密,表单需要对每一个value进行加密
  2. 返回的数据格式
{"response":"AES加密后的数据"}

具体说明: 前端获取到RSA公钥,公钥主要对AES的盐值进行加密 请求处理:数据使用盐值(未加密)进行AES加密,然后对盐值使用公钥进行加密,放到请求头的secret-key中 返回数据处理:使用盐值(未加密)进行AES解密

需要注意的是:

  1. 选择加解密的方式是先找个demo,确认前后端都能对数据进行加解密,我参考了篇文章使用AES进行加解密
  2. 网关过滤器的顺序很重要

加解密流程图

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章