前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >三方对接时常用的加密方式

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

作者头像
余生大大
发布2022-11-02 16:00:55
7730
发布2022-11-02 16:00:55
举报
文章被收录于专栏:余生大大

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

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

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

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

1. 电子签章法大大:

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

代码语言:javascript
复制
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”表⽰),拼接时不允许有跨⾏、空格等空⽩

字符:

代码语言:javascript
复制
app_keyxxxpathxxxtimestampxxxv1.0

将零售云分配的 app_secret 拼接到字符串的两端( app_secret 取值以“SSS”表⽰):

代码语言:javascript
复制
SSSapp_keyxxxpathxxxtimestampxxxv1.0SSS

⽤ SHA256 算法对原始串进⾏摘要,伪代码如下:

代码语言:javascript
复制
String sign = SHA256("SSSapp_keyxxxpathxxxtimestampxxxv1.0SSS")

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

3. 银豹:

PosPal 银豹收银系统

请求头

参数

类型

是否必填

描述

time-stamp

String

时间戳,

data-signature

String

1:appKey,请求体 拼接 2:md5 加密(32位) 3:转为大写

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

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-03-31,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
腾讯电子签
弹指间,放心签。腾讯电子签(E-Sign Service)致力为企业及个人提供极简且高效的电子合同管理工具。您只需要一部手机即可完成合同签约及常见的合同管理操作;电子签将对签约全程进行区块链记录,为您的业务与生活保驾护航。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档