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

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

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

  • 标题 / 粗斜体
  • 代码片段
  • 超链接 / 图片 / 视频
  • 列表 / 引用

文章内容较多时,可以用标题分段 :

## 大标题 
### 小标题

斜体 / 粗体 :

**粗体** 
*斜体*
***粗斜体***

代码片段 :

``` javascript
代码片段
```

超链接 :

[链接文字](链接地址) 例: [百度](http://www.baidu.com)

图片 :

![图片说明](图片地址) 例: ![百度logo](http://www.baidu.com/img/bdlogo.gif)

视频 :

!![视频说明](视频地址) 例: !![优酷视频](http://youku.com)

有序列表 :

1. 123
2. 123
3. 123

无序列表 :

- 123
- 123
- 123

引用 : ( 双回车后结束引用 )

> 引用内容
引用内容
引用内容