2023年微信小程序API 用戶數(shù)據(jù)的簽名驗(yàn)證和加解密
保障用戶數(shù)據(jù)安全:微信小程序API用戶數(shù)據(jù)的簽名驗(yàn)證和加解密
1. 數(shù)據(jù)簽名校驗(yàn)
為確保開(kāi)放接口返回的用戶數(shù)據(jù)安全性,微信對(duì)明文數(shù)據(jù)進(jìn)行簽名。開(kāi)發(fā)者可以對(duì)數(shù)據(jù)包進(jìn)行簽名校驗(yàn),確保數(shù)據(jù)完整性。
- 簽名校驗(yàn)算法需要涉及用戶的session_key。開(kāi)發(fā)者需在wx.login登錄流程中獲取用戶的session_key,并自行維護(hù)與應(yīng)用的自身登錄態(tài)的對(duì)應(yīng)關(guān)系。
- 通過(guò)調(diào)用wx.getUserInfo等接口獲取數(shù)據(jù)時(shí),接口會(huì)同時(shí)返回rawData、signature兩個(gè)參數(shù)。其中signature = sha1(rawData + session_key)。
- 開(kāi)發(fā)者將signature與rawData發(fā)送到開(kāi)發(fā)者服務(wù)器進(jìn)行校驗(yàn)。服務(wù)器利用相同的算法計(jì)算出簽名signature2,比對(duì)signature與signature2即可校驗(yàn)數(shù)據(jù)完整性。
以wx.getUserInfo的數(shù)據(jù)校驗(yàn)為例:
接口返回的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得到的結(jié)果為:
75e81ceda165f4ffa64f4068af58c64b8f54b88c
2. 加密數(shù)據(jù)解密算法
如果接口涉及敏感數(shù)據(jù)(如wx.getUserInfo中的openId和unionId),則接口的明文內(nèi)容不會(huì)包含這些敏感數(shù)據(jù)。開(kāi)發(fā)者需要對(duì)接口返回的加密數(shù)據(jù)(encryptedData)進(jìn)行對(duì)稱解密。
- 對(duì)稱解密使用的算法為AES-128-CBC,數(shù)據(jù)采用PKCS#7填充。
- 對(duì)稱解密的目標(biāo)密文為Base64_Decode(encryptedData)。
- 對(duì)稱解密秘鑰aeskey=Base64_Decode(session_key),其中session_key是16字節(jié)。
- 對(duì)稱解密算法初始向量iv將在數(shù)據(jù)接口中返回。
微信提供了多種編程語(yǔ)言的示例代碼(點(diǎn)擊下載),每種語(yǔ)言類型的接口名字一致。可以參照示例調(diào)用方式。
另外,為保證數(shù)據(jù)有效性,我們會(huì)在敏感數(shù)據(jù)上添加數(shù)據(jù)水印(watermark)
<本文由himall原創(chuàng),商業(yè)轉(zhuǎn)載請(qǐng)聯(lián)系作者獲得授權(quán),非商業(yè)轉(zhuǎn)載請(qǐng)標(biāo)明:himall原創(chuàng)>
滿足不同行業(yè)發(fā)展電商的需求,HiMall更有針對(duì)性的提供不同行業(yè)內(nèi)的電商解決方案
-
跨境電商解決方案
支持直郵/保稅模式
對(duì)接海關(guān)/保稅倉(cāng)
支持多國(guó)國(guó)際語(yǔ)言
對(duì)接Paypal國(guó)際支付
幫助跨境外貿(mào)企業(yè)搭建跨境進(jìn)口/出口電商平臺(tái),搶占國(guó)際電商市場(chǎng),針對(duì)企業(yè)需求定制個(gè)性化跨境電商解決方案 -
分賬解決方案
迎合金融監(jiān)管要求
規(guī)避“二清”結(jié)算
節(jié)約平臺(tái)財(cái)務(wù)成本
降低平臺(tái)招商成本
在合法、合規(guī)的前提下,為電商平臺(tái)提供資金收付、賬戶管理、資金合規(guī)等一體化整體解決方案 -
B2B批發(fā)解決方案
多級(jí)階梯批發(fā)價(jià)
布局全渠道批發(fā)入口
專屬批發(fā)訂貨市場(chǎng)
銀聯(lián)B2B大額支付
為企業(yè)快速搭建綜合性B2B批發(fā)電商平臺(tái),整合線下批發(fā)資源,拓展線上批發(fā)渠道,實(shí)現(xiàn)批發(fā)業(yè)務(wù)24小時(shí)在線經(jīng)營(yíng)
-
MRO工業(yè)品采購(gòu)平臺(tái)系統(tǒng)|MRO工業(yè)品采購(gòu)平臺(tái)系統(tǒng)有哪些功能
最新消息:MRO工業(yè)品采購(gòu)平臺(tái)系統(tǒng) 是一款集產(chǎn)、研、銷于一體的綜合性解決方案,專為解決工業(yè)品企業(yè)的采購(gòu)難題而設(shè)計(jì)。該系統(tǒng)通過(guò)...詳情
-
電子元器件采購(gòu)商城系統(tǒng)|電子元器件采購(gòu)商城系統(tǒng)有哪些功能
最新消息:電子元器件采購(gòu)商城系統(tǒng) 是專為滿足電子元器件行業(yè)復(fù)雜業(yè)務(wù)流程需求而設(shè)計(jì)的綜合性平臺(tái)。它不僅提供了全面的技術(shù)支持...詳情
【本站聲明】
1、本網(wǎng)站發(fā)布的該篇文章,目的在于分享電商知識(shí)及傳遞、交流相關(guān)電商信息,以便您學(xué)習(xí)或了解電商知識(shí),請(qǐng)您不要用于其他用途;
2、該篇文章中所涉及的商標(biāo)、標(biāo)識(shí)的商品/服務(wù)并非來(lái)源于本網(wǎng)站,更非本網(wǎng)站提供,與本網(wǎng)站無(wú)關(guān),系他人的商品或服務(wù),本網(wǎng)站對(duì)于該類商標(biāo)、標(biāo)識(shí)不擁有任何權(quán)利;
3、本網(wǎng)站不對(duì)該篇文章中所涉及的商標(biāo)、標(biāo)識(shí)的商品/服務(wù)作任何明示或暗示的保證或擔(dān)保;
4、本網(wǎng)站不對(duì)文章中所涉及的內(nèi)容真實(shí)性、準(zhǔn)確性、可靠性負(fù)責(zé),僅系客觀性描述,如您需要了解該類商品/服務(wù)詳細(xì)的資訊,請(qǐng)您直接與該類商品/服務(wù)的提供者聯(lián)系。