美文网首页
使用 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 对数据进行对称加密

    npm install crypto-js要用 AES 算法加密,首先我们要引入 crypto-js ,crypt...

  • 非对称加密与https

    非对称加密 非对称加密可以对任何二进制的数据进行加密。原理:使用公钥对数据加密得到密文,使用私钥对数据解密得到原数...

  • 密码学基础(五):证书体系

    摘要算法 略 对称加密 略 非对称加密 略 数字签名 使用摘要算法对原文进行签名后使用rsa的私钥对摘要进行加密。...

  • Angular使用Crypto-JS进行AES加密

    使用Crypto-JS进行AES加密 在最近的项目中,调用登录接口,需要对账号密码数据进行AES加密后再进行传输,...

  • 加密

    对称加密: 原理:使用秘钥和加密算法对数据进行转换,得到的无意义数据即为密文;使用密钥和解密算法对密文进行逆向转换...

  • 信息安全(1)之对称加密

    对称加密是使用相同的密钥对数据进行加密和解密。对称加密由于其安全性高和加解密速度快,被用于数据的加密。 场景 Al...

  • java.security 框架之签名、加密、摘要及证书

    和第三方系统对接时,需要对隐私数据进行加密,对请求报文进行签名等。加密算法分为单向加密、对称加密、非对称加密等,其...

  • 加密算法

    对称加密算法: 对称加密算法用来对敏感数据等信息进行加密,常用的算法包括: DES(Data Encryption...

  • 常用加解密那些事

    在开发中由于对于数据安全性的要求,会对数据进行加解密处理。通常使用的加密方式有数字摘要、对称加密和非对称加密等。 ...

  • 使用 EMQX Cloud 实现物联网设备一机一密验证

    数据安全是物联网应用的重中之重。各厂商常使用对称加密、非对称加密、数字签名、数字证书等方法来对设备进行认证,以防止...

网友评论

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

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