【小程序】使用Crypto插件解密encryptedData

近来做一小程序功能,需获取微信登录时返回encryptedData数据里的unionid , 返回的encryptedData是经过加密的需进行解密。 官方给的demo 都是后台的,尝试使用Crypto插件解密
小程序官方encryptedData解密
Crypto使用文档

getUnionId: function (key, iv, encryptedData) {
   const crypto = requirePlugin("Crypto");
   const mode = ['CBC'];
   const padding = ['Pkcs7'];
   var mykey = crypto.Base64.parse(key)
   var myiv = crypto.Base64.parse(iv)
   var myEncryptedData = crypto.Base64.parse(encryptedData)
   var aesCipher = crypto.Base64.stringify(myEncryptedData)

   mode.map((modeItem) => {
     padding.map((paddingItem) => {
       const v = new crypto.AES().decrypt(aesCipher, mykey, {
         iv: myiv,
         mode: crypto.Mode[modeItem],
         padding: crypto.Padding[paddingItem]
       });
       var data = JSON.parse(v.toString(crypto.Utf8))
       }
 }      

小程序中使用插件需在app.json中注册,并在小程序公众平台上关联使用的插件

"plugins": {
    "Crypto": {
      "version": "0.0.002",
      "provider": ""
    }
  }
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值