pp电子

登录
免费开通

微信小程序api署名验证,小程序加密数据解密算法

用户数据的署名验证和加解密


数据签学校验

为了确保 开放接口 返回用户数据的清静性,,,,,,微信会对明文数据举行署名。。。???⒄呖梢云局び敌枰允莅傩星┭Q,,,,,,确保数据的完整性。。。

  1. 签学校验算法涉及用户的session_key,,,,,,通过 wx.login 登录流程获取用户session_key,,,,,,并自行维护与应用自身登录态的对应关系。。。
  2. 通过挪用接口(如 wx.getUserInfo)获取数据时,,,,,,接口会同时返回 rawData、signature,,,,,,其中 signature = sha1( rawData + session_key )
  3. 开发者将 signature、rawData 发送到开发者服务器举行校验。。。服务器使用用户对应的 session_key 使用相同的算法盘算出署名 signature2 ,,,,,,比对 signature 与 signature2 即可校验数据的完整性。。。

如wx.getUserInfo的数据校验:

接口返回的rawData:

{
  "nickName": "Band",
  "gender": 1,
  "language": "zh_CN",
  "city": "Guangzhou",
  "province": "Guangdong",
  "country": "CN",
  "avatarUrl": "http://wx.qlogo.cn/mmopen/vi_32/1vZvI39NWFQ9XM4LtQpFrQJ1xlgZxx3w7bQxKARol6503Iuswjjn6nIGBiaycAjAtpujxyzYsrztuuICqIM5ibXQ/0"
}

用户的 session-key:

HyVFkGl5F5OQWJZZaNzBBg==

以是,,,,,,用于署名的字符串为:

{"nickName":"Band","gender":1,"language":"zh_CN","city":"Guangzhou","province":"Guangdong","country":"CN","avatarUrl":"http://wx.qlogo.cn/mmopen/vi_32/1vZvI39NWFQ9XM4LtQpFrQJ1xlgZxx3w7bQxKARol6503Iuswjjn6nIGBiaycAjAtpujxyzYsrztuuICqIM5ibXQ/0"}HyVFkGl5F5OQWJZZaNzBBg==

使用sha1获得的效果为

75e81ceda165f4ffa64f4068af58c64b8f54b88c

加密数据解密算法

接口若是涉及敏感数据(如wx.getUserInfo当中的 openId 和unionId ),,,,,,接口的明文内容将不包括这些敏感数据。。。???⒄呷缧枰袢∶舾惺,,,,,,需要对接口返回的加密数据( encryptedData )举行对称解密。。。解密算法如下:

  1. 对称解密使用的算法为 AES-128-CBC,,,,,,数据接纳PKCS#7填充。。。
  2. 对称解密的目的密文为 Base64_Decode(encryptedData),
  3. 对称解密秘钥 aeskey = Base64_Decode(session_key), aeskey 是16字节
  4. 对称解密算法初始向量 iv 会在数据接口中返回。。。

微信官方提供了多种编程语言的示例代码(点击下载)。。。每种语言类型的接口名字均一致。。。挪用方式可以参照示例。。。

另外,,,,,,为了应用能校验数据的有用性,,,,,,我们会在敏感数据加上数据水印( watermark )

watermark参数说明:

参数 类型 说明
watermark OBJECT 数据水印
appid String 敏感数据归属appid,,,,,,开发者可校验此参数与自身appid是否一致
timestamp DateInt 敏感数据获取的时间戳, 开发者可以用于数据时效性校验

如接口wx.getUserInfo敏感数据当中的watermark:

{
    "openId": "OPENID",
    "nickName": "NICKNAME",
    "gender": GENDER,
    "city": "CITY",
    "province": "PROVINCE",
    "country": "COUNTRY",
    "avatarUrl": "AVATARURL",
    "unionId": "UNIONID",
    "watermark":
    {
        "appid":"APPID",
        "timestamp":TIMESTAMP
    }
}

注:此条件供的加密数据(encryptData)以及对应的加密算法将被弃用,,,,,,请开发者不要再依赖旧逻辑。。。

更多微信小程序开发教程,,,,,,可以关注。。。
【本站声明】
  1、本站文章中所选用的图片及文字泉源于网络以及用户投稿,,,,,,由于未联系到知识产权人或未发明有关知识产权的挂号,,,,,,若有知识产权人并不肯意我们使用,,,,,,若是有侵权请连忙联系。。。
  2、本网站差池文章中所涉及的内容真实性、准确性、可靠性认真,,,,,,仅系客观性形貌,,,,,,如您需要相识该类商品/服务详细的资讯,,,,,,请您直接与该类商品/服务的提供者联系。。。


KESION pp电子软件

KESION pp电子软件是海内领先的在线教育软件及私域社交电商软件服务提供商,,,,,,恒久专注于为企业提供在线教育软件及社交电商SaaS平台解决方案。。。
公司焦点产品云开店SaaS社交电商服务平台、在线教育SaaS服务平台、教育企业数字化SaaS云平台、企微营销助手、私有化自力安排品牌网校和在线教育咨询等。。。

KESION 一直通过手艺立异,,,,,,提供产品和服务,,,,,,助力企业向数字化转型,,,,,,通过科技驱动商业刷新,,,,,,让商业变得更智慧!



▼点击进入pp电子官网相识更多



上/下篇
换一换相关推荐
精选内容
热门精选
pp电子·模拟器(试玩游戏)官方网站 pp电子·模拟器(试玩游戏)官方网站 pp电子·模拟器(试玩游戏)官方网站
【网站地图】
微信小程序api署名验证,小程序加密数据解密算法 - KES