美文网首页
加密工具CryptoJS

加密工具CryptoJS

作者: 萘小蒽 | 来源:发表于2019-11-28 09:42 被阅读0次
    1. 下载 CryptoJS
    npm install crypto-js --save-dev
    
    1. 创建encrypt.js 引入,KP建议让后端传。
    //encrypt.js
    /**
    * 通过crypto-js实现 加解密工具
    * AES
    * @author: wfk
    */
    import CryptoJS from 'crypto-js'
    const KP = {
      key: '32824659', // 秘钥 16*n:
      iv: '1234567812345678'  // 偏移量
    };
    function getAesString(data, key, iv) { // 加密
        key = CryptoJS.enc.Utf8.parse(key);
        iv = CryptoJS.enc.Utf8.parse(iv);
        let encrypted = CryptoJS.DES.encrypt(data, key,
            {
                // iv,
                mode: CryptoJS.mode.ECB,
                padding: CryptoJS.pad.Pkcs7
            });
        return encrypted.toString();    // 返回的是base64格式的密文
    }
    function getDAesString(encrypted, key, iv) { // 解密
        key = CryptoJS.enc.Utf8.parse(key);
        iv = CryptoJS.enc.Utf8.parse(iv);
        let decrypted = CryptoJS.DES.decrypt(encrypted, key,
            {
                // iv,
                mode: CryptoJS.mode.ECB,
                padding: CryptoJS.pad.Pkcs7
            });
        return decrypted.toString(CryptoJS.enc.Utf8);      //
    }
    // AES 对称秘钥加密
    const aes = {
      en: (data) => getAesString(data, KP.key, KP.iv),
      de: (data) => getDAesString(data, KP.key, KP.iv)
    };
    // BASE64
    const base64 = {
        en: (data) => CryptoJS.enc.Base64.stringify(CryptoJS.enc.Utf8.parse(data)),
        de: (data) => CryptoJS.enc.Base64.parse(data).toString(CryptoJS.enc.Utf8)
    };
    // SHA256
    const sha256 = (data) => {
        return CryptoJS.SHA256(data).toString();
    };
    // MD5
    const md5 = (data) => {
      return CryptoJS.MD5(data).toString();
    };
    export {
      aes,
      md5,
      sha256,
      base64
    };
    
    

    3. 引入 以及使用

    import { aes } from '@/util/encrypt.js';
    ****
    let password = aes.en('12345678'); //3iy6ZPcjJQzOBGxvlgwRDg==
    

    相关文章

      网友评论

          本文标题:加密工具CryptoJS

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