﻿/* AES加密 自定义扩展
var dstr = AdiconReport.DEncrypt.Encrypt("Test Data");
document.write(dstr);
document.write('<br/>');
document.write(HySoft.DEncrypt.Decrypt(dstr));
*/
//var AdiconReportDEncrypt = {
//    iv: "1qazXSW@3edcVFS$",
//    key: "=[;.<LP_0okmNJI(8uhbVGX&",
//    Encrypt: function (data) {
//        var key = CryptoJS.enc.Latin1.parse(this.key);
//        var iv = CryptoJS.enc.Latin1.parse(this.iv);
//        return CryptoJS.AES.encrypt(data, key, { iv: iv, mode: CryptoJS.mode.CBC, padding: CryptoJS.pad.ZeroPadding });
//    },
//    Decrypt: function (encrypted) {
//        var key = CryptoJS.enc.Latin1.parse(this.key);
//        var iv = CryptoJS.enc.Latin1.parse(this.iv);
//        return CryptoJS.AES.decrypt(encrypted, key, { iv: iv, padding: CryptoJS.pad.ZeroPadding }).toString(CryptoJS.enc.Utf8);
//    }
//};

/***************************************************** * AES加密 * @param content 加密内容 * @param key 加密密码，由字母或数字组成 　　　　　　此方法使用AES-128-ECB加密模式，key需要为16位 　　　　　　加密解密key必须相同，如：abcd1234abcd1234 * @return 加密密文 ****************************************************/
function encrypt(content, key) {
    var sKey = CryptoJS.enc.Utf8.parse(key);
    var sContent = CryptoJS.enc.Utf8.parse(content);
    var encrypted = CryptoJS.AES.encrypt(sContent, sKey, { mode: CryptoJS.mode.ECB, padding: CryptoJS.pad.Pkcs7 });
    return encrypted.toString();
}
/***************************************************** * AES解密 * @param content 加密密文 * @param key 加密密码，由字母或数字组成 　　　　　　此方法使用AES-128-ECB加密模式，key需要为16位 　　　　　　加密解密key必须相同，如：abcd1234abcd1234 * @return 解密明文 ****************************************************/
function decrypt(content, key) {
    var sKey = CryptoJS.enc.Utf8.parse(key);
    var decrypt = CryptoJS.AES.decrypt(content, sKey, { mode: CryptoJS.mode.ECB, padding: CryptoJS.pad.Pkcs7 });
    return CryptoJS.enc.Utf8.stringify(decrypt).toString();
}