美文网首页
使用 crypto-js 对数据进行对称加密

使用 crypto-js 对数据进行对称加密

作者: yonglei_shang | 来源:发表于2018-04-27 17:20 被阅读2153次

    npm install crypto-js
    要用 AES 算法加密,首先我们要引入 crypto-jscrypto-js 是一个纯 javascript 写的加密算法类库 ,可以非常方便地在 javascript 进行 MD5SHA1SHA2SHA3RIPEMD-160 哈希散列,进行 AESDESRabbitRC4Triple DES 加解密

    demo1

    // 加载核心加密库
    var CryptoJS = require("crypto-js");
    // 加载des算法
    var tripledes = require("crypto-js/tripledes");
    // 开始加密,并且返回密文
    var ciphertext  = tripledes.encrypt("fuckyou", '123').toString();
    // 解密
    var plaintext  = tripledes.decrypt(ciphertext, '123').toString(CryptoJS.enc.Utf8)
    // 输出密文和解密后的内容
    console.log(ciphertext, plaintext)
    

    demo2 DES加密

    // 加载核心加密库
    var CryptoJS = require("crypto-js");
    
    function encrypt (message, key) {
        var keyHex = CryptoJS.enc.Utf8.parse(key);
         var encrypted = CryptoJS.DES.encrypt(message, keyHex, {
            mode: CryptoJS.mode.ECB,
            padding: CryptoJS.pad.Pkcs7
        });
        return {
            key: keyHex,
            value: encrypted.toString()
        }
    }
    
    function decrypt (message, key) {
        var plaintext = CryptoJS.DES.decrypt(message, key, {
            mode: CryptoJS.mode.ECB,
            padding: CryptoJS.pad.Pkcs7
        })
        return plaintext.toString(CryptoJS.enc.Utf8)
    }
    
    var a = encrypt('mssage123', '123');
    var b = decrypt(a.value, a.key);
    
    console.log(a.value.length)
    

    demo3 AES加密

    const CryptoJS = require('crypto-js');  //引用AES源码js
        
        const key = CryptoJS.enc.Utf8.parse("1234123412ABCDEF");  //十六位十六进制数作为密钥
        const iv = CryptoJS.enc.Utf8.parse('ABCDEF1234123412');   //十六位十六进制数作为密钥偏移量
        
        //解密方法
        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();
        }
        
        export default {
            Decrypt ,
            Encrypt
        }
    

    其他

    CryptoJS.MD5("Message")
    CryptoJS.SHA1("Message")
    CryptoJS.SHA256("Message")
    
    var hash1 = CryptoJS.HmacMD5("Message", "Secret Passphrase");
    var hash2 = CryptoJS.HmacSHA1("Message", "Secret Passphrase");
    var hash3 = CryptoJS.HmacSHA256("Message", "Secret Passphrase");
    var hash4 = CryptoJS.HmacSHA512("Message", "Secret Passphrase");
    

    相关文章

      网友评论

          本文标题:使用 crypto-js 对数据进行对称加密

          本文链接:https://www.haomeiwen.com/subject/nxdblftx.html