收藏
评论

小程序中如何使用Crypto进行加解密

该插件完全前端化,无任何服务器端调用,请放心使用。如果不放心可用fiddler截取插件包查看相关源码。


  1. 登录微信公众平台 https://mp.weixin.qq.com,输入小程序账号密码。



  2. 点击设置,打开第三方服务,点击添加插件。


  3. 搜索 Crypto 或者 wxf25d506ff81e19fb




  4. 搜索结果出来后选中 Crypto ,点击添加。



  5. 配置小程序app.json

  6. 加入

    "plugins":{

        "crypto":{

            "version":"0.0.003",

            "provider":"wxf25d506ff81e19fb"

        }

    }

    注: version填0.0.002也可使用,0.0.002没有 PBKDF2 加密方式及 RSA 非对称加解密方式


  7. 在小程序代码中声明引用       

    const crypto = requirePlugin("crypto");


  8. 使用MD5加密

  9. new crypto["MD5"]("布包云").toString();


  10. 使用AES 进行加解密

  11. const mi = new crypto.AES().encrypt('布包云'"BubaoCloud", {

    iv: 8,

    mode: crypto.Mode.CBC,

    padding: crypto.Padding.Pkcs7

    });

    console.log('encrypt:', mi.toString());


    const v = new crypto.AES().decrypt(mi.toString(), "BubaoCloud", {

    iv: 8,

    mode: crypto.Mode.CBC,

    padding: crypto.Padding.Pkcs7

    });

    console.log('decrypt:', v.toString(crypto.Utf8));


最后一次编辑于  2018-11-07
收藏

22 个评论

  • 伍小勇
    伍小勇
    2022-03-01

    插件都搜索不到 ?

    2022-03-01
    赞同 3
    回复
  • One




.
    One .
    2018-06-28

    针对 @Harlan 的疑虑做出文章前的声明

    2018-06-28
    赞同 3
    回复 5
    • 2018-10-26

      new crypto[cryptoItem]("布包云").toString();    cryptoItem是什么

      2018-10-26
      回复
    • 2018-10-26

      我看这个插件的文档 没有写md5怎么加密啊

      2018-10-26
      回复
    • One




.
      One .
      2018-10-26回复

      new crypto["MD5"]("布包云").toString();

      new crypto.MD5("布包云").toString();

      2018-10-26
      回复
    • 2018-10-26回复One .

      谢谢

      2018-10-26
      回复
    • 紧急通知
      紧急通知
      2019-10-30回复One .
      pkcs7 换成zeroPadding还能用吗?
      2019-10-30
      回复
  • 东
    2019-10-15

    我需要用

    enc-base64

    还有

    hmac-sha1

    应该怎么写

    js中类似

    Base64.stringify(hmacSHA1(`x-date: ${date}`, key))



    2019-10-15
    赞同 1
    回复 1
    • GgYy
      GgYy
      2020-06-26
      请问你解决了吗,我想知道hmac-sha1在微信小程序中怎么用
      2020-06-26
      回复
  • -
    -
    2019-01-21

    大神 ,这个插件 RSA 机密怎么设置 publickey 呢

    1. 直接使用 crypto.Keypair({ bits: 1024 }); 生成的密钥对,插件可以正常加解密,但是用在线加解密工具验证就报错。

    2. encrypt.setPublicKey(RSA_PUBLIC);设置自己的1024位的 publickey 报错:Message too long for RSA,但是在线加解密工具可以正常使用。

    3. 在线工具:https://www.bejson.com/enc/rsa/


    2019-01-21
    赞同 1
    回复 1
    • 2019-04-02

      大哥你这个怎么解决的?

      2019-04-02
      回复
  • 诗无
    诗无
    2018-11-26

    AES128/CFB128/NOPACK 这样的该如何写?


    var mi = new crypto.AES().encrypt(text, XMD5Keys, {iv: EMD5iv,mode: crypto.Mode.CFB,padding: crypto.Padding.NoPadding});


    是这样子吗?


    2018-11-26
    赞同 1
    回复
  • UNCLE
    UNCLE
    2018-08-17

    可以RSA加解密吗

    2018-08-17
    赞同 1
    回复 2
    • One




.
      One .
      2018-08-27

      暂时不行哦

      2018-08-27
      回复
    • One




.
      One .
      2018-09-03回复One .

      需要RSA的可以跟帖,统计一下。

      因为RSA加解密耗费资源太高,只能用worker实现,但是小程序插件目前不能用worker。


      2018-09-03
      1
      回复
  • alex .P
    alex .P
    01-12

    sha1加密之后怎么解密呢?有示例吗?

    01-12
    赞同
    回复
  • Sth        
    Sth        
    2020-04-29

    支持零填充(zeropadding)吗?

    2020-04-29
    赞同
    回复
  • 肥嘟嘟
    肥嘟嘟
    2020-03-31

    请问这个插件在wepy框架里面可以用吗?该如何使用?

    2020-03-31
    赞同
    回复
  • 红萝卜炒鸡蛋
    红萝卜炒鸡蛋
    2019-11-15

    云函数中能不能调用crypto呢?


    2019-11-15
    赞同
    回复

正在加载...

登录 后发表内容