前端AES加密解密

202 阅读1分钟

AES加密解密

  • 在项目中,其中有一些接口用到了身份证作为参数,或者是返回身份证,公司要求要加密一下

代码

// npm i crypto-js
import CryptoJS from "crypto-js"
var key = 'gds'; //秘钥(后端提供)
var iv = '123';  //常量(后端提供)

/**
 * @description 加密
 * @param {string} data  要加密的文本
 * @return {string} 返回加密后的文本
 */
export const encrypt = (data) => {
    var srcs = CryptoJS.enc.Utf8.parse(data);
    var encrypted = CryptoJS.AES.encrypt(srcs, key, {
        iv: iv,
        mode: CryptoJS.mode.CBC,
        padding: CryptoJS.pad.ZeroPadding
    });
    return encrypted.toString();
}
/**
 * @description 解密
 * @param {string} data  要解密的文本
 * @return {string} 返回解密后的文本
 */
export const decrypt = (encrypted) => {
    var decrypted = CryptoJS.AES.decrypt(encrypted, key, {
        iv: iv,
        mode: CryptoJS.mode.CBC,
        padding: CryptoJS.pad.ZeroPadding
    });
    return decrypted.toString(CryptoJS.enc.Utf8);
}