哈哈柚
哈哈柚
  • 发布:2021-11-11 15:48
  • 更新:2022-05-06 19:20
  • 阅读:4159

uni-app项目vue3下如何引入crypto-js实现加密解密

分类:uni-app

https://www.npmjs.com/package/crypto-js
正常的vue3-vite项目中使用没有问题

npm install crypto-js

引入

import sha256 from 'crypto-js/sha256';  
import hmacSHA512 from 'crypto-js/hmac-sha512';  
import Base64 from 'crypto-js/enc-base64';  

const message, nonce, path, privateKey; // ...  
const hashDigest = sha256(nonce + message);  
const hmacDigest = Base64.stringify(hmacSHA512(path + hashDigest, privateKey));

在uni中安装后引入,在内置浏览器中运行提示如下
SyntaxError: The requested module does not provide an export named 'default'
该如何使用这个包呢。

2021-11-11 15:48 负责人:无 分享
已邀请:
哈哈柚

哈哈柚 (作者)

manifest里面vue版本切换成2,import和require方式就都可以用了

DCloud_UNI_FXY

DCloud_UNI_FXY

可以更新至最新的HBuilderX Alpha

  • 4***@qq.com

    最新版 3.3.13 依然存在这个问题,请问怎么解决?

    2022-04-05 17:56

4***@qq.com

4***@qq.com

3.4.7 也存在这个问题,再之前一个的版本没有问题的,前几天更新之后突然就这样了。

4***@qq.com

4***@qq.com

运行到手机基座没有问题,运行到浏览器有问题。

4***@qq.com

4***@qq.com

搞了个兼容,APP 里面使用 import,H5 里面使用全局变量。

// #ifdef APP-PLUS  
import crypto from "@/node_modules/crypto-js/crypto-js"  
// #endif  

// #ifdef H5  
const crypto = window.CryptoJS  
// #endif  

export default crypto
  • 4***@qq.com

    搞错了,window.CryptoJS 是 undefined,crypto-js 使用 this 设置全局变量的,uni-app 里面 this 是 undefined,浏览器环境中正常应该是 window。

    2022-05-07 10:13

  • 4***@qq.com

    H5 development 模式才会报错,production 不会,应该是因为 production 是按 cjs 运行的,development 是用 vite 按 es 运行的。

    2022-05-07 11:13

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