HiShop首頁(yè) > 網(wǎng)上商城系統(tǒng) > 商城建設(shè) > 2023年微信小程序API 用戶數(shù)據(jù)的簽名驗(yàn)證和加解密

2023年微信小程序API 用戶數(shù)據(jù)的簽名驗(yàn)證和加解密

時(shí)間:2024-10-30 11:17:43 |閱讀量:

保障用戶數(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ù)完整性。

  1. 簽名校驗(yàn)算法需要涉及用戶的session_key。開(kāi)發(fā)者需在wx.login登錄流程中獲取用戶的session_key,并自行維護(hù)與應(yīng)用的自身登錄態(tài)的對(duì)應(yīng)關(guān)系。
  2. 通過(guò)調(diào)用wx.getUserInfo等接口獲取數(shù)據(jù)時(shí),接口會(huì)同時(shí)返回rawData、signature兩個(gè)參數(shù)。其中signature = sha1(rawData + session_key)。
  3. 開(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ì)稱解密。

  1. 對(duì)稱解密使用的算法為AES-128-CBC,數(shù)據(jù)采用PKCS#7填充。
  2. 對(duì)稱解密的目標(biāo)密文為Base64_Decode(encryptedData)。
  3. 對(duì)稱解密秘鑰aeskey=Base64_Decode(session_key),其中session_key是16字節(jié)。
  4. 對(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)>

多用戶商城系統(tǒ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)
    了解B2B方案
更多電商解決方案>
|2024-10-30猜你喜歡

【本站聲明】 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)系。