• 前端加解密库 CryptoJS 使用(Triple DES 对称加密)


    CryptoJS 文档

    const key  = CryptoJS.enc.Utf8.parse("4c43c365a4ac05b91eb5fa95"); // key
    const iv = CryptoJS.enc.Utf8.parse("4c43c365"); // iv
    
    
    // 直接使用 key 是不对的,需要像上面那样处理
    // const key  = "4c43c365a4ac05b91eb5fa95"; // key
    // const iv = key.substr(0, 8); // iv

    function
    encrypted(){
      const encrypted = CryptoJS.TripleDES.encrypt(params, key, { 
            iv: iv, 
            mode: CryptoJS.mode.CBC,  
            padding: CryptoJS.pad.Pkcs7  
        });
    
        return encrypted.toString(); // 返回加密后的字符串
    }

    function decrypted(params) { const decrypted = CryptoJS.TripleDES.decrypt(encrypted, key, { iv: iv, mode: CryptoJS.mode.CBC, padding: CryptoJS.pad.Pkcs7 }).toString(CryptoJS.enc.Utf8); return decrypted // 返回解密后的字符串 }

    例子: 后台 key:  4c43c365a4ac05b91eb5fa95

    加密算法: 3DES(又叫Triple DES)是三重数据加密算法

    加密模式: CBC

    填充: Pkcs7

    偏移量: 4c43c365 (默认为key 的前8位)

    输出:base64

    字符集:utf-8

    加密输出:

    encrypted("winyh_2020-03-08_14:30_CryptoJS_Test")  // 加密输出 ==> '2KI3DXKp3Yh4v7olUa93LUpapo6Jha92cY9/EICBv/LH2kZu57Mtxg=='

    解密输出:

    dncrypted("2KI3DXKp3Yh4v7olUa93LUpapo6Jha92cY9/EICBv/LH2kZu57Mtxg==")  解密输出==> "winyh_2020-03-08_14:30_CryptoJS_Test"


    加密输出:

    encrypted("winyh")  // 加密输出 ==> 'J3y7sIjJQgs='

    解密输出:

    dncrypted("J3y7sIjJQgs=")  解密输出==> "winyh"
     
     
  • 相关阅读:
    石头的用途
    [转] Analysis: Khronos and OpenGL ARB merge
    ★○值得你我珍藏一世的80句话○★
    PasswordStrength 控件
    NumericUpDownExtender 控件
    ReorderList控件
    Nobot控件拒绝机器人行为
    PopupControlExtender控件
    PagingBulletedList 控件学习
    MutuallyExlcusiveCheckBox控件
  • 原文地址:https://www.cnblogs.com/winyh/p/12442535.html
Copyright © 2020-2023  润新知