三方对接时常用的加密方式

一般在三方暴露对外api时都会通过加密参数来保证数据的不可篡改行,而加密方式多种多样,像MD5、sha1、Base64、sha256、AES等各种加密编码算法。

而在验证用户方面会用到分配给用户的appkey及appSecret等信息,在参数传递的时候会将appKey或者appId作为公共参数传递以在三方符合获取此账户权限及秘钥,而秘钥则是隐示的存在参数加密编码中,三方按相同规则加密编码比对传输编码来保证数据没有被篡改。

而还有可能会对接口版本跟请求有效期进行传参限制,会增加版本参数v及时间戳等参数来限制暴露接口的安全性及多版本的非同加密方式。

以下是几个三方对接时的加密方式:

1. 电子签章法大大:

按上图的摘要计算流程来分析就是如下代码示例和步骤

Base64(
    SHA1(
        app_id
        +MD5(timestamp)
        +SHA1(app_secret+ sort)
    )
)
步骤 1. 序列化需要参与
A. 将参与摘要计算的业务参数按字典升序排列
B. app_secret 附加到字符串串前
步骤 2. 对得到的字符串进⾏ SHA1 加密

步骤 3. 计算 timestamp MD5 值,并和 app_id ,步骤 2 中得到的字符串拼接得到新的字符串
步骤 4. 对步骤 3 中得到的字符串进行 SHA1 加密
步骤 5. 对步骤 4 中得到的字符串进⾏ base64 加密
在传参时会分公共参数与业务参数,公共参数是必要的,而业务参数则是针对每个接口的业务规则所对应的参数
       
法大大的公共参数有
参数类型是否必填描述
app_id
String
接入方ID
timestamp
String
请求时间
yyyyMMddHHmmss
v
String
版本号
msg_digest
String
签名摘要

2. 诸葛零售云:

公共参数

参数类型是否必填描述
app-key
String
零售云为租⼾分配
timestamp
String
调⽤API时的系统时间戳,时区为GMT+0800
v
String
版本号,固定值1.0
sign
String
签名串

参与签名的参数

参数 说明
timestamp
调⽤API时的系统时间戳,时区为GMT+0800
app_key
零售云为租⼾分配
app_secret
零售云为租⼾分配
v
版本号,固定值1.0
path
请求路径

签名格式

把所有参数名和参数值进⾏拼接(参数值以“xxx”表⽰),拼接时不允许有跨⾏、空格等空⽩
字符:
app_keyxxxpathxxxtimestampxxxv1.0
将零售云分配的 app_secret 拼接到字符串的两端( app_secret 取值以“SSS”表⽰):
SSSapp_keyxxxpathxxxtimestampxxxv1.0SSS
SHA256 算法对原始串进⾏摘要,伪代码如下:
String sign = SHA256("SSSapp_keyxxxpathxxxtimestampxxxv1.0SSS")

最后得到的编码就是参数sign

3. 银豹:

PosPal 银豹收银系统

请求头

参数类型是否必填描述
time-stamp
String
时间戳,
data-signature
String

1:appKey,请求体 拼接

2:md5 加密(32位)

3:转为大写

这个比较简单,将appKey与请求体拼接后使用MD5加密得到编码串,编码串全部转为大写得到签名串,但是流程都是一致的

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

余生大大

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值