aes加密iv是什么_[分享]JS中利用CryptoJS进行MD5/SHA256/BASE64/AES加解密的方法与示例...

CryptoJS (crypto.js) 为 JavaScript 提供了各种各样的加密算法,由于它使用起来稍微有些复杂。所以本文主要着重说一下CryptoJS进行MD5/SHA256/BASE64/AES加解密的方法与示例。

准备工作

你可以下载CryptoJS(https://github.com/brix/crypto-js)到您本地,新建一个网页然后通过console.log()进行调试,可以使用一款接口管理工具ApiPost(https://www.apipost.cn/)进行调试。

ApiPost是一款功能类似Postman的工具,但是融入了文档分享功能,使用起来很方便。它内置了CryptoJS支持,所以我就以它作为调试工具了。

MD5加密

CryptoJS.MD5('待加密字符串').toString()

v2-f33449cef5f9cd2e699955ca3d9d6a16_b.jpg

SHA256加密

CryptoJS.SHA256('待加密字符串').toString()

v2-763ed0fca347e3f45413a710aa2a8184_b.jpg

base64加密

CryptoJS.enc.Base64.stringify(CryptoJS.enc.Utf8.parse('待加密字符串'))

v2-fb405e602063d7798870d0359ee2d2e7_b.jpg

base64解密

CryptoJS.enc.Base64.parse("待解密字符串").toString(CryptoJS.enc.Utf8)

v2-b5ae40702d4debbd66715178fb5ff0f8_b.jpg

AES简单加密

CryptoJS.AES.encrypt('待加密字符串', '秘钥').toString()

v2-8a7ede3af1852991b72a18a46e5d25a3_b.jpg

AES简单解密

CryptoJS.AES.decrypt('待解密字符串', '秘钥').toString(CryptoJS.enc.Utf8)

v2-dddcee3ec97455fe7ad8ce245fce1cb9_b.jpg

自定义AES加解密函数

以上示例是2个简单aes加解密方案,大部分情况下,我们需要自定义aes加解密更多的参数,比如加密模式、填充等。

    const key = CryptoJS.enc.Utf8.parse("秘钥");  //十六位十六进制数作为密钥
    const iv = CryptoJS.enc.Utf8.parse('偏移量');   //十六位十六进制数作为密钥偏移量
    
    //解密方法
    function Decrypt(word) {
        let encryptedHexStr = CryptoJS.enc.Hex.parse(word);
        let srcs = CryptoJS.enc.Base64.stringify(encryptedHexStr);
        let decrypt = CryptoJS.AES.decrypt(srcs, key, { iv: iv, mode: CryptoJS.mode.CBC, padding: CryptoJS.pad.Pkcs7 });
        let decryptedStr = decrypt.toString(CryptoJS.enc.Utf8);
        return decryptedStr.toString();
    }
    
    //加密方法
    function Encrypt(word) {
        let srcs = CryptoJS.enc.Utf8.parse(word);
        let encrypted = CryptoJS.AES.encrypt(srcs, key, { iv: iv, mode: CryptoJS.mode.CBC, padding: CryptoJS.pad.Pkcs7 });
        return encrypted.ciphertext.toString().toUpperCase();
    }

    //以上方法中 mode就是加密模式,padding是填充。

请求示例:

v2-6620826ca08af262709f0866fb74abdb_b.jpg

结尾

JS的加解密类库很多,但是相对来说CryptoJS更强大一些。通过研究它的使用文档,可以发现更多惊喜。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值