// /*
//  * @Author: dgflash
//  * @Date: 2022-09-02 09:28:00
//  * @LastEditors: dgflash
//  * @LastEditTime: 2022-10-21 09:46:39
//  */

// import CryptoES from "crypto-es";

// /**
//  * CryptoES 加密库封装
//  * https://github.com/entronad/crypto-es
//  *
//  * 安装第三方库生效
//  * npm install -g yarn
//  * yarn add crypto-es
//  */
// export class EncryptUtil {
//     private static key: string = null!;
//     private static iv: CryptoES.lib.WordArray = null!;

//     /**
//      * MD5加密
//      * @param msg 加密信息
//      */
//     static md5(msg: string): string {
//         return CryptoES.MD5(msg).toString();
//     }

//     /** 初始化加密库 */
//     static initCrypto(key: string, iv: string) {
//         this.key = key;
//         this.iv = CryptoES.enc.Hex.parse(iv);
//     }

//     /**
//      * AES 加密
//      * @param msg 加密信息
//      * @param key aes加密的key
//      * @param iv  aes加密的iv
//      */
//     static aesEncrypt(msg: string, key: string, iv: string): string {
//         return CryptoES.AES.encrypt(
//             msg,
//             this.key,
//             {
//                 iv: this.iv,
//                 format: this.JsonFormatter
//             },
//         ).toString();
//     }

//     /**
//      * AES 解密
//      * @param str 解密字符串
//      * @param key aes加密的key
//      * @param iv  aes加密的iv
//      */
//     static aesDecrypt(str: string, key: string, iv: string): string {
//         const decrypted = CryptoES.AES.decrypt(
//             str,
//             this.key,
//             {
//                 iv: this.iv,
//                 format: this.JsonFormatter
//             },
//         );
//         return decrypted.toString(CryptoES.enc.Utf8);
//     }

//     private static JsonFormatter = {
//         stringify: function (cipherParams: any) {
//             const jsonObj: any = { ct: cipherParams.ciphertext.toString(CryptoES.enc.Base64) };
//             if (cipherParams.iv) {
//                 jsonObj.iv = cipherParams.iv.toString();
//             }
//             if (cipherParams.salt) {
//                 jsonObj.s = cipherParams.salt.toString();
//             }
//             return JSON.stringify(jsonObj);
//         },
//         parse: function (jsonStr: any) {
//             const jsonObj = JSON.parse(jsonStr);
//             const cipherParams = CryptoES.lib.CipherParams.create(
//                 { ciphertext: CryptoES.enc.Base64.parse(jsonObj.ct) },
//             );
//             if (jsonObj.iv) {
//                 cipherParams.iv = CryptoES.enc.Hex.parse(jsonObj.iv)
//             }
//             if (jsonObj.s) {
//                 cipherParams.salt = CryptoES.enc.Hex.parse(jsonObj.s)
//             }
//             return cipherParams;
//         },
//     };
// }