m***@qq.com
m***@qq.com
  • 发布:2022-10-28 11:21
  • 更新:2022-10-28 15:43
  • 阅读:486

uniapp云开发如何获取手机号并解密?

分类:uniCloud

公司主体小程序,采用uniapp云开发来开发微信小程序,对接的是阿里云。业务需要获取用户微信绑定的手机号码,不知道怎么解密,烦请社区大佬赐教!
按照网传方法,在 npm install 了 crypto-js@3.3.0,在封装解密方法时,已经获取到 WordArray,然后不知道如何变成明文数据。具体代码如下:

import Crypto from 'crypto-js'  
console.log('Crypto.util', Crypto);  

function RdWXBizDataCrypt(appId, sessionKey) {  
    this.appId = appId  
    this.sessionKey = sessionKey  
}  
RdWXBizDataCrypt.prototype.decryptData = function(encrypted, ivData) {  
    var encryptedData = Crypto.enc.Base64.stringify(Crypto.enc.Utf8.parse(encrypted))  
    var key = Crypto.enc.Base64.stringify(Crypto.enc.Utf8.parse(this.sessionKey))  
    var iv = Crypto.enc.Base64.stringify(Crypto.enc.Utf8.parse(ivData))  
    // 对称解密使用的算法为 AES-128-CBC,数据采用PKCS#7填充  
    try {  
        // 解密  
        var bytes = Crypto.AES.decrypt(encryptedData, key, {  
            asBpytes: true,  
            iv: iv,  
            mode: Crypto.mode.CBC,  
            padding: Crypto.pad.Pkcs7  
        });  
        console.log('bytes', bytes);  
        var decryptResult = Crypto.enc.Base64.parse(bytes)  
        console.log('decryptResult', decryptResult);  
    } catch (err) {  
        console.log(err)  
    }  
    // if (decryptResult.watermark.appid !== this.appId) {  
    //     console.log(err)  
    // }  
    return decryptResult  
}  
export default RdWXBizDataCrypt
2022-10-28 11:21 负责人:无 分享
已邀请:
DCloud_uniCloud_WYQ

DCloud_uniCloud_WYQ

微信小程序提供了两个获取手机号的方法,

  • m***@qq.com (作者)

    你好,对于你说的第一种方式,使用的 cryptojs 是什么版本?我看最新版本和3.3.0版本都没有 createDecipheriv 方法的,如何调用?对于第二种,可能是我的问题中没有描述清除,我想要的是前端解密。项目架构本身就是 serverless,没有后端解密接口可以请求的。

    2022-11-01 10:12

  • DCloud_uniCloud_WYQ

    回复 m***@qq.com: uni-id-co是后端代码用的nodejs自带crypto模块。你是想把decryptResult(base64)转成字符串是吧。你就以 base64转字符串 为关键词搜一下就行,很多现成的代码。另外强烈建议解密还是放在服务器进行,客户端并不安全

    2022-11-01 13:13

  • a***@guoyuan.digital

    回复 m***@qq.com: 你好,你uniCloud云函数引入解密文件的时候有出现找不到解密文件的问题嘛

    2023-02-04 17:56

该问题目前已经被锁定, 无法添加新回复