开放平台鉴权方案

    1. 公共参数
    1. 客户端签名
    1. 服务端鉴签
    1. 服务端appId与appSecret生成方式

1.公共参数

参数名 类型 含义
appId string appId
nonce string 随机字符串,每次请求重新生成,随机性越大越好,32byte以内,a-zA-Z0-9,例如:d15D792875807b0FEc620f4db2ac1667
timestamp string unix时间戳(毫秒级),每次请求重新生成,例如:1533203363618
sig string 签名结果,对除sig以外其他参数进行计算的值,每次请求都需重新生成,生成的sig全为小写

2.客户端签名过程

  • 注:(除post请求的参数都在body体内的区别以外,post与get请求的签名方式相同)
  1. 筛选参数并排序
    获取sig字段以外的所有请求参数原始值(注意:签名阶段不要对参数值做处理,比如不能进行urlencode编码,在请求的过程时可以进行urlencode编码,如传输json时的url编码),并按照第一个字符的键值ASCII码递增排序(字母升序排序),如果遇到相同字符则按照第二个字符的键值ASCII码递增排序,以此类推。
{appId: 'xxx',nonce: 'd15D792875807b0FEc620f4db2ac1667',timestamp: '1533203363618',...key: 'value',...
}
  1. 将排序后的参数与其对应的值,组合成“参数=参数值”的格式,并把参数用‘&’符号连接起来,此时生成的字符串为待签名字符串,例如字符串名称为paramStr。
appId=xxx&nonce=d15D792875807b0FEc620f4db2ac1667&timestamp=1533203363618&...&key=value&...
  1. 将带签名字符串进行base64编码(注意base64编码的字符集为utf8),例如得到的字符串为base64ParamsStr。
base64ParamsStr = Buffer.from('步骤2所得字符串').toString('base64');
  1. 使用appSecret作为哈希key,对步骤3获得的base64ParamStr使用HMAC-SHA256算法哈希得到字节数组(注意:不要转成字符串),用伪代码表示为:
sha256Result = crypto.createHmac('sha256', appSecret).update(base64ParamsStr).digest();
  1. 对得到的sha256Result进行MD5的计算的到32位小写字符串作为sig。
sig = crypto.createHash('md5').update(sha256Result).digest('hex').toLowerCase();
  1. 将sig拼接在其他请求参数的末尾发送
//url
appId=xxx&...&...&sig=xxx

//body
{appId: 'xxx',nonce: 'd15D792875807b0FEc620f4db2ac1667',timestamp: '1533203363618',...key: 'value',...sig: 'xxx'
}

3.服务端鉴签过程

  1. 通过appId查找用户的appSecret验证一致性。
  2. 将前端所传的参数去掉sig参数,进行如客户端签名方式一致的签名,验证客户端所传sig是否一致。

4.服务端生成appId与appSecret生成方式

  1. appId = appKey = 固定字符串 + useIds
  2. appSecret = hmac-sha1(userId + 生成appSecret的毫秒级时间戳)

开放平台签名验签方案相关推荐

  1. 图解PKCS#1——第四部分 签名验签方案

    8.1 RSASSA-PSS签名验签方案 采用EMSA-PSS编码方案 + RSASP/RSAVP签名验签 整个签名/验签流程与加解密流程非常相似. RSASSA-PSS-SIGN (K, M) (§ ...

  2. sign签名验签方案及代码

    序列图 流程图 源码 SignUtils package com.hnu.sign;import java.io.UnsupportedEncodingException; import java.u ...

  3. springboot接口签名统一效验_Python如何接入开放平台?签名验签、加密解密、授权认证测试实战...

    当前大型top企业都有非常成熟的开放平台业务,比如微信开放平台.新浪微博开放平台.支付宝开放平台等.开放平台的发展为第三方个人或企业提供了巨大的机遇.开发者想要接入各大开放平台,必须要遵从开放平台的安 ...

  4. Python如何接入开放平台?签名验签、加密解密、授权认证测试!

    当前大型top企业都有非常成熟的开放平台业务,比如微信开放平台.新浪微博开放平台.支付宝开放平台等.开放平台的发展为第三方个人或企业提供了巨大的机遇.开发者想要接入各大开放平台,必须要遵从开放平台的安 ...

  5. 工银e生活开发脱坑日志(1)RSA密钥签名验签windows环境下配置

    **环境配置:**阿里云 windows 2012 R2,WAMPSERVER 3.0.17集成环境 **入坑问题:**RSA2密钥对的生产及验签,产生报错信息:Warning: openssl_ve ...

  6. 叙述无保密机制的rsa签名过程_安全系列之——RSA的公钥私钥有多少人能分的清楚?RSA的签名验签与加密解密如何使用公私钥?...

    在对接很多的互联网公司的开发平台时,这些互联网公司未来自身平台的安全,都会需要调用方签名确认调用方的身份是合法的,同时未来信息网络传输的安全可能还需要加密解密.比如对接支付宝.微信开放平台时,需要配置 ...

  7. RSA密钥生成、加密解密、数据签名验签

    公钥.私钥生成 准备工作,基础的帮助类 使用java代码生成公钥私钥 使用openssl生成公钥私钥 加解密 数据签名及验签 数据加解密及签名验签测试 注意项 公钥.私钥生成 准备工作,基础的帮助类 ...

  8. 签名验签服务器性能测试,签名验签服务器 功率

    签名验签服务器 功率 内容精选 换一换 网站的访问与云服务器的网络配置.端口通信.防火墙配置.安全组配置等多个环节相关联.任意一个环节出现问题,都会导致网站无法访问.本节操作介绍网站无法访问时的排查思 ...

  9. 如何使用RSA 对数据加解密和签名验签?一篇文章带你搞定

    点击上方"Python爬虫与数据挖掘",进行关注 回复"书籍"即可获赠Python从入门到进阶共10本电子书 今 日 鸡 汤 三分割据纡筹策,万古云霄一羽毛. ...

最新文章

  1. 不用再找换脸教程了,飞桨PaddleGAN给你一键式体验
  2. 【组合数学】生成函数 ( 正整数拆分 | 无序 | 有序 | 允许重复 | 不允许重复 | 无序不重复拆分 | 无序重复拆分 )
  3. 仿苹果手机闹钟_你会用苹果手机吗?这些快捷指令快速设置一下,好用度提升10倍...
  4. 栏目图片 栏目描述_网站描述怎么写?对网站优化有什么作用?
  5. matlab中ismember_MATLAB 代码格式化简易版
  6. 【SpringBoot零基础案例03】【IEDA 2021.1】SpringBoot框架核心配置文件application.properties的使用
  7. 网络上常用的一些网站
  8. rabbitmq如何保证消息不被重复消费_如何保证消息不被重复消费
  9. ZZULIOJ 1058: 求解不等式
  10. 怎么将pom文件mysql驱动修改版本_JDBC-MySql基础操作详解
  11. python学习------面向对象进阶
  12. eclipse hibernate mysql_[s2sh]_3_hibernate与mysql还有eclipse的笔记
  13. 使用python对mysql主从进行监控,并调用钉钉发送报警信息
  14. Win11怎么不让软件联网?Win11禁止某个软件联网的方法
  15. 尺缩钟慢之动钟变慢——思想实验推导狭义相对论(七)
  16. 操作系统实验一:进程管理(含成功运行C语言源代码)
  17. android增量更新详细解读
  18. Trunk链路的作用
  19. 3-python 函数篇
  20. 鸿蒙系统怎么安装mate30,mate30 5g 鸿蒙系统在哪里下载安装

热门文章

  1. 零基础学UI设计,学费要多少?
  2. Tapd需求或BUG 关联gitlib提交
  3. 【windows】安装tensorflow中的delf深度图像检索模块
  4. django+mysql图书推荐系统-计算机毕业设计源码89399
  5. Qt布局setStretch()后获取部件大小不更新的解决办法
  6. Nexus与Ubnunt兼容问题
  7. 【网络间谍篇】这些知名APT组织,背后都有国家级机构支持
  8. python 四维数据怎么看性别_四维彩超怎么看性别?四维看男孩女孩诀窍
  9. 用python解释exif数据的GPS信息
  10. 新魔百和M304A_晶晨S905L系处理器关于JL-CW-ZN-SM-TY代工说明及鸿蒙架构全网通系统刷机教程汇总