三方对接时常用的加密方式
一般在三方暴露对外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. 诸葛零售云:
公共参数
参与签名的参数
签名格式
把所有参数名和参数值进⾏拼接(参数值以“xxx”表⽰),拼接时不允许有跨⾏、空格等空⽩
字符:
app_keyxxxpathxxxtimestampxxxv1.0
将零售云分配的 app_secret 拼接到字符串的两端( app_secret 取值以“SSS”表⽰):
SSSapp_keyxxxpathxxxtimestampxxxv1.0SSS
⽤ SHA256 算法对原始串进⾏摘要,伪代码如下:
String sign = SHA256("SSSapp_keyxxxpathxxxtimestampxxxv1.0SSS")
最后得到的编码就是参数sign
3. 银豹:
请求头
参数 | 类型 | 是否必填 | 描述 |
---|---|---|---|
time-stamp | String | 是 | 时间戳, |
data-signature | String | 是 | 1:appKey,请求体 拼接 2:md5 加密(32位) 3:转为大写 |
这个比较简单,将appKey与请求体拼接后使用MD5加密得到编码串,编码串全部转为大写得到签名串,但是流程都是一致的
相关文章
- Android中常用的加密方式[通俗易懂]
- 安卓项目实战之:Android常用的5种加密方式
- Android常用加密方式
- Flask 学习-25.passlib 对密码加密与验证
- Java实现MD5加密的方式
- [Java][Java加密与解密]《对称加密简单概念与代码实现》
- 1+1>2?当云数据完整性审计遇到可搜索加密
- Crack App | 某都市魔幻 FM 请求参数 sign 的加密分析
- 什么是加密?有哪些加密类型和加密算法?逆天原创神作,值得一读!
- 常见的加密方式之python实现
- 马斯克暗示,端到端加密私信即将到来?
- faust勒索病毒攻击加密Windows系统的方式,勒索病毒解密数据恢复
- java RC4加密解密详解编程语言
- 强大的Linux:实现加密方式的完美保护(linux加密方式)
- Linux加密磁盘:保护数据安全的可靠方式(linux加密磁盘)
- MySQL加密技术:确保安全的路径(mysql加密方式)
- MySQL给你带来安全的加密方式(mysql加密方式)
- Linux系统下加密保护密码的方式(linux密码加密方式)
- Linux 使用GPG加密安全的新方式(linuxgpg)
- 破解Linux:以Hash加密的方式(hashlinux)
- MySQL密码:探索加密的奥秘(mysql密码的加密方式)
- 安全保障:Oracle数据库加密方式简介(oracle数据库加密方式)
- MySQL加密改善数据安全性(encode mysql)
- 云上秘密加密保护Redis云数据库(云数据库redis版密码)
- 单点登陆基于Redis的安全加密原理(单点登陆原理redis)
- 西班牙想做欧洲最安全ICO投资框架 它会是加密货币的另一个天堂吗?
- C#中字符串的加密的源码
- aspMD5加密方式使用建议
- Asp.net,C#加密解密字符串的使用详解