美文网首页
React+NestJS进行参数加解密

React+NestJS进行参数加解密

作者: Poppy11 | 来源:发表于2021-07-30 08:59 被阅读0次
    在网上找了许多开源的库,觉得crypto-js比较方便使用
    创建utils/secret.ts
    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 
    }
    
    使用方法

    这里需要说一点,如果需要对对象进行加密,则需要在加密时把他转成JSON字符串
    也就是
    CryptoJS.Encrypt(JSON.stringfy(OBJECT)); //加密

    import CryptoJS from '../../../utils/secret';
      CryptoJS.Encrypt(phoneNumber); //加密
     CryptoJS.Decrypt(phoneNumber);、//解密
    

    相关文章

      网友评论

          本文标题:React+NestJS进行参数加解密

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