# gwcrypt **Repository Path**: huyup/gwcrypt ## Basic Information - **Project Name**: gwcrypt - **Description**: 在网关层对传输的数据进行加解密 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 2 - **Created**: 2021-07-23 - **Last Updated**: 2022-01-06 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README 时序图: ![时序图](https://images.gitee.com/uploads/images/2021/0723/175455_dad2e0aa_696967.png "网关对数据进行加解密时序图.png") 请求头参数说明: | 参数 | 描述 | | ------------ | ------------ | | 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进行加密 | | sign | 使用SHA256对请求的参数进行签名 | 请求参数加密处理: 1.json请求的数据加密(body) ``` {"request":"AES加密后的数据"} ``` 2.get请求的参数加密,在请求头中设置url-param-decrypt=1 ``` http://127.0.0.1:8041/user-service/test?request=KXBUFIFtuVbqNtpLMe/yVg== ``` 3.表单请求的数据加密,表单需要对每一个value进行加密 4.返回的加密的数据格式,在请求头中设置resp-encrypt=1 ``` {"response":"AES加密后的数据"} ``` 前端加密流程: 1. 对请求的参数使用SHA256进行签名 2. 使用RSA的公钥对AES的盐值进行加密 3. 使用AES对请求的参数进行加密 后端解密流程: 1. 对请求的参数使用SHA256进行验签 2. 使用RSA的私钥对AES的盐值进行解密 3. 使用AES对请求的参数进行解密