收藏
回答

微信小程序中不能使用crypto-js吗?crypto-js进行AES加密报错?

登录密码需要用到AES加密,npm install crypto-js --save,npm构建后,使用crypto-js进行AES加密时报错,报错信息Native crypto module could not be used to get secure random number.

回答关注问题邀请回答
收藏

2 个回答

  • 丛
    2021-07-08

    你用的版本是4.0.0吧。

    假设使用这个版本的话,这个版本有些大变动,以下摘自https://github.com/brix/crypto-js

    4.0.0
    
    This is an update including breaking changes for some environments.
    
    In this version Math.random() has been replaced by the random methods of the native crypto module.
    
    For this reason CryptoJS might not run in some JavaScript environments without native crypto module. Such as IE 10 or before or React Native.
    

    根据描述,变动是需要native crypto module,我猜测这个模块是来自浏览器,而小程序环境没有这个模块,所以有个方法就是降级使用crypto-js,如3.3.0

    参考自https://developers.weixin.qq.com/community/develop/doc/000c2679ae0ad0fc25ba7a72656c00?_at=1592410733853

    2021-07-08
    有用
    回复 1
    • yaime
      yaime
      2022-09-20
      降级时候需要注意有一个坑,在AES解密的时候4.1.0版本添加了一个safe_URL解码器,如果使用低于这个版本的在解码一些问题,详见https://github.com/brix/crypto-js/issues/252
      2022-09-20
      回复
  • 跨商通
    跨商通
    2021-04-30

    一直用的就是它。

    2021-04-30
    有用
    回复
登录 后发表内容