import CryptoJs from 'crypto-js' //引用DES源码js
export default {
    // 加密,调用该方法时，传入的data必须是字符串类型，
    //   故，如果要加密对象等类型，需要先用JSON.stringify()将其字符串化再传入
    encryptByDES(data) {
        let key = 'zhuzongcuobianwallet' // 16位，密钥字符串
        let keyHex = CryptoJs.enc.Utf8.parse(key) // 将字符串的转为WordArray类型
        let encrypted = CryptoJs.DES.encrypt(data, keyHex, {
            mode: CryptoJs.mode.ECB, // 加密模式，ECB模式
            padding: CryptoJs.pad.Pkcs7 // 填充方式
        })
        return encrypted.ciphertext.toString().toUpperCase() //  返回的是base64的密文,是字符串类型
    },
    // 解密, 调用该方法时，传入的ciphertext是base64的密文
    decryptByDES(ciphertext) {
        let key = 'zhuzongcuobianwallet'
        let keyHex = CryptoJs.enc.Utf8.parse(key)
        let udata = CryptoJs.DES.decrypt({
            ciphertext: CryptoJs.enc.Hex.parse(ciphertext)
        }, keyHex, {
            mode: CryptoJs.mode.ECB,
            padding: CryptoJs.pad.Pkcs7
        });
        return udata.toString(CryptoJs.enc.Utf8) // 返回的是加密之前的原始数据,是字符串类型
    }
}
