rsa加密、加签、解密、验签。 公钥加密,私钥解密 私钥加签,公钥解签
当前支持约定:
- 私钥获取方式是PKCS8
- 分段加密、解密。
- 加签使用md5做hash
- 加密之后会进行标准被base64编码;同时在进行解密的入参数据,也会先进行标准base64解码
ecryhub -port 应用启动的端口 -pub /path-for-key/pubkey1.txt -pri /path-for-key/prikey1.txt -thirdpub /path-for-key/thirdpubkey1.txt
e.g. ecryhub -port 9090 -pub /Users/tanghc/Documents/pubkey1.txt -pri /Users/tanghc/Documents/prikey1.txt -thirdpub /Users/tanghc/Documents/thirdpubkey1.txt
linux可以编译到:
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o ecryhub
本机是mac可以直接运行
go build -o ecryhub
- 使用application/json的请求方式。请求体为入参的json
- 响应的结构为
{
"ret": 1//int 1标识成功,其他标识失败
"msg":"error info"// ret不为1时的错误信息。
"data":{ //业务接口的响应参数
}
}
对原始字符串进行加密,并且声称签名。当入参noSign为true的时候,不需要生成签名,只进行加密,不传默认为false
入参描述:
参数名 | 类型 | 描述 |
---|---|---|
data | String | 待加密的串 |
noSign | bool | noSign为true的时候,不需要生成签名,只进行加密,不传默认为false |
响应data描述:
参数名 | 类型 | 描述 |
---|---|---|
encryptData | String | 加密后的串 |
sign | String | 生成的签名 |
e.g.
curl --location --request POST 'http://localhost:9090/encrypt/' --header 'Content-Type: application/json' --data-raw '{"data":"{\"phone\":\"17610911021\",\"voucherStatus\":\"WY\",\"channel\":\"C24\",\"provinceCode\":\"41\",\"readLine\":0,\"dataNum\":10,\"searchCondition\":0}","noSign":true}'
对加密后的传进行解密,并且验证签名是否合法。当入参sign为空的时候,不进行验签
入参描述:
参数名 | 类型 | 描述 |
---|---|---|
encryptData | String | 待解密的串 |
sign | String | 待验签的签名。为空不进行验签。 |
响应data描述:
参数名 | 类型 | 描述 |
---|---|---|
decryptData | String | 解密后的串 |
e.g.
curl --location --request POST 'http://localhost:9090/decrypt/' --header 'Content-Type: application/json' --data-raw '{"sign":"QE4S2t26Fgd6hEDqDW88w4CtmEXFdHQoAaAbeFtjmeD17AjQnwtjw0JWNhl3VidccXvc5cyDYmTwufG64FZuyHR6wWQiMck8Q8Iy/NMVUtFQZUhDMPCg6anK6ACQgMz/FiIu+vyrsGVgyu9OJZDk1FtY+AHdKRmYHqCvxaPXjmc=","encryptData":"Qu/d9A329yqTaDfPAEJek/xMutC3jO07wonL/BZsRw9EZiBm3i7gYvXcPUx7kJQTTabJvyybCIjAi9qjgE81VJuwbSwcdsgNakllyYrqDz0gAGPv5hkz5Sk8Idi9wj9wkCBX2RK77pANU5H3j1URA6UjhJnZE0Wlo6WZl6Qwxyo="}'