收藏
回答

aes-128-gcm 微信小程序如何实现这种加密方式?

在微信小程序中使用 import crypto from 'crypto' 会报错,查了资料说不支持用不了,我要在小程序使用 aes-128-gcm  加密,应该怎么做?

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

2 个回答

  • 郑钱花
    郑钱花
    05-15

    crypto-js 库。GCM模式你自己改就行

    import CryptoJS from 'crypto-js'
    export const getAesString = (data, key, iv) => { //加密
      let keys = CryptoJS.enc.Utf8.parse(key)
      let vis = CryptoJS.enc.Utf8.parse(iv)
      let encrypt = CryptoJS.AES.encrypt(data, keys, {
        iv: vis, //iv偏移量 CBC需加偏移量
        mode: CryptoJS.mode.CBC, //CBC模式
        // mode: CryptoJS.mode.ECB, //ECB模式
        padding: CryptoJS.pad.Pkcs7 //padding处理
      });
      // debugger
      return encrypt.toString(); //加密完成后,转换成字符串
    }
    
    05-15
    有用
    回复 2
    • 史某人
      史某人
      09-25
      什么水平?crypto-js文档看过没?你意思自己写一个GCM?搁着害人
      09-25
      回复
    • 郑钱花
      郑钱花
      09-25回复史某人
      可以使用sjcl库,crypto-js早期版本有,后面不维护就剔掉了
      09-25
      回复
  • 一笑皆春
    一笑皆春
    05-15

    直接找到crypto的源码保存个js,放在项目里直接调用js里边的方法

    05-15
    有用
    回复 1
    • 莫莫
      莫莫
      05-23
      遇到个问题,我解密的时候使用console.log打印是能打印出解密数据的,但是之后又报错
      05-23
      回复
登录 后发表内容