jiami.js 2.39 KB
// 文本加密
import { sm4 } from 'sm-crypto';
const DEFAULT_KEY ="cda4442f102f6396eea76902e37ad7cb";
const DEFAULT_IV = "8bd8a83221742111c7532b7275a7fe9c";
export const encrypt = (str) => {
    if(!str) {
        return ''
    }
    const encryptStr = sm4.encrypt(str, DEFAULT_KEY, {
        iv: DEFAULT_IV,
        mode: 'cbc',
        padding: 'pkcs#7'
        })
    return encryptStr
}

// 文本解密
export const decrypt = (str) => {
    if(!str) {
        return ''
    }
//     if(str.indexOf('ENC(') === -1) {
//         return str
//     }
//     const str_ = str.replace('ENC(', '').replace(')', '')
    try {        
        const decryptStr = sm4.decrypt(str, DEFAULT_KEY, {
            iv: DEFAULT_IV,
            mode: 'cbc',
            padding: 'pkcs#7'
        })
        return decryptStr
    } catch (error) {
        return '解密失败!'
    }
}
// 批量加密
export const decryptall = (obj,isjmlist) => {


    let list  = []
    let objnew = {}
    for (let key in obj) {
        let item = {
            typeis:'2',//是否加密 1加密 2不加密
            keyname:key,//变量名
            value:obj[key],//值
        }
        if(isjmlist.length> 0) {

            // let found = isjmlist.find(function(element) {
            //     return key == element;
            // });
            console.log(isjmlist.indexOf(key) != -1)
            if(isjmlist.indexOf(key) != -1) {
                item.typeis = '1'
            }
        } else {
            item.typeis = '1'
        }

        list.push(item)
    }


    list.forEach(element => {
        if(element.typeis == '1' && element.value) {
            console.error(element)
            element.value = encrypt(element.value)
        }
        objnew[element.keyname] = element.value
    });

    return objnew
}
// 批量解密
export const encryptall = (list,isjmlist) => {


    let newlist =  list.map(element => {
        let c1 =  Object.keys(element)
        c1.forEach(key => {
            if(isjmlist.length> 0) {
                console.log(isjmlist.indexOf(key) != -1)
                if(isjmlist.indexOf(key) != -1) {
                    element[key] = decrypt(element[key])
                }
            } else {
                element[key] = decrypt(element[key])
            }
        });
        return element
    });

    return newlist
}