{"version":3,"file":"index.mjs","sources":["../../../../src/crypto/index.ts"],"sourcesContent":["import { AES, MD5, SHA1, enc, mode } from \"crypto-js\";\nimport { consoleError } from \"../console\";\n\n/**\n * 加密解密\n */\nexport const cryptoUtil = {\n\t/**\n\t * AES\n\t */\n\taes: {\n\t\t/**\n\t\t * AES加密\n\t\t * @param dataStr 要加密的字符串\n\t\t * @param key 用于加密的密钥\n\t\t * @param vector 用于加密的向量（IV）\n\t\t * @param cipherMode 加密模式，默认为CBC模式\n\t\t */\n\t\tencrypt(dataStr: string, key: string, vector: string, cipherMode: any = mode.CBC): string {\n\t\t\tif (!dataStr) {\n\t\t\t\treturn dataStr;\n\t\t\t}\n\n\t\t\t// 处理Key不足32位的问题\n\t\t\tif (key.length < 32) {\n\t\t\t\t// 不足\n\t\t\t\tkey = key.padEnd(32, \"f\");\n\t\t\t}\n\n\t\t\t// 处理Key超过32位的问题\n\t\t\tif (key.length > 32) {\n\t\t\t\t// 超过\n\t\t\t\tkey = key.substring(0, 32);\n\t\t\t}\n\n\t\t\t// 处理IV不足16位的问题\n\t\t\tif (vector.length < 16) {\n\t\t\t\t// 不足\n\t\t\t\tvector = vector.padEnd(16, \"f\");\n\t\t\t}\n\n\t\t\t// 处理IV超过16位的问题\n\t\t\tif (vector.length > 16) {\n\t\t\t\t// 超过\n\t\t\t\tvector = vector.substring(0, 16);\n\t\t\t}\n\n\t\t\treturn AES.encrypt(dataStr, enc.Utf8.parse(key), {\n\t\t\t\tiv: enc.Utf8.parse(vector),\n\t\t\t\tmode: cipherMode,\n\t\t\t}).toString();\n\t\t},\n\t\t/**\n\t\t * AES解密\n\t\t * @param dataStr 要解密的Base64编码字符串\n\t\t * @param key 用于解密的密钥\n\t\t * @param vector 用于解密的向量（IV）\n\t\t * @param cipherMode 解密模式，默认为CBC模式\n\t\t */\n\t\tdecrypt<T = string>(dataStr: string, key: string, vector: string, cipherMode: any = mode.CBC): T | null {\n\t\t\tif (!dataStr) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\t// 处理Key不足32位的问题\n\t\t\tif (key.length < 32) {\n\t\t\t\t// 不足\n\t\t\t\tkey = key.padEnd(32, \"f\");\n\t\t\t}\n\n\t\t\t// 处理Key超过32位的问题\n\t\t\tif (key.length > 32) {\n\t\t\t\t// 超过\n\t\t\t\tkey = key.substring(0, 32);\n\t\t\t}\n\n\t\t\t// 处理IV不足16位的问题\n\t\t\tif (vector.length < 16) {\n\t\t\t\t// 不足\n\t\t\t\tvector = vector.padEnd(16, \"f\");\n\t\t\t}\n\n\t\t\t// 处理IV超过16位的问题\n\t\t\tif (vector.length > 16) {\n\t\t\t\t// 超过\n\t\t\t\tvector = vector.substring(0, 16);\n\t\t\t}\n\n\t\t\tconst resAESData = AES.decrypt(dataStr, enc.Utf8.parse(key), {\n\t\t\t\tiv: enc.Utf8.parse(vector),\n\t\t\t\tmode: cipherMode,\n\t\t\t});\n\t\t\ttry {\n\t\t\t\tconst result = resAESData.toString(enc.Utf8);\n\t\t\t\treturn JSON.parse(result) as T;\n\t\t\t} catch (error) {\n\t\t\t\tconsoleError(\"AESCrypto\", error);\n\t\t\t\treturn null;\n\t\t\t}\n\t\t},\n\t},\n\t/**\n\t * SHA1\n\t */\n\tsha1: {\n\t\t/**\n\t\t * SHA1加密\n\t\t * @param dataStr 要加密的字符串\n\t\t */\n\t\tencrypt(dataStr: string): string {\n\t\t\tif (!dataStr) {\n\t\t\t\treturn dataStr;\n\t\t\t}\n\n\t\t\treturn SHA1(dataStr).toString(enc.Hex).toUpperCase();\n\t\t},\n\t},\n\t/**\n\t * MD5\n\t */\n\tMD5: {\n\t\t/**\n\t\t * MD5加密\n\t\t * @param dataStr 要加密的字符串\n\t\t */\n\t\tencrypt(dataStr: string): string {\n\t\t\tif (!dataStr) {\n\t\t\t\treturn dataStr;\n\t\t\t}\n\n\t\t\treturn MD5(dataStr).toString(enc.Hex).toUpperCase();\n\t\t},\n\t},\n};\n"],"names":[],"mappings":";;AAMO,MAAM,aAAa;AAAA;AAAA;AAAA;AAAA,EAIzB,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAQJ,QAAQ,SAAiB,KAAa,QAAgB,aAAkB,KAAK,KAAa;AACzF,UAAI,CAAC,SAAS;AACN,eAAA;AAAA,MAAA;AAIJ,UAAA,IAAI,SAAS,IAAI;AAEd,cAAA,IAAI,OAAO,IAAI,GAAG;AAAA,MAAA;AAIrB,UAAA,IAAI,SAAS,IAAI;AAEd,cAAA,IAAI,UAAU,GAAG,EAAE;AAAA,MAAA;AAItB,UAAA,OAAO,SAAS,IAAI;AAEd,iBAAA,OAAO,OAAO,IAAI,GAAG;AAAA,MAAA;AAI3B,UAAA,OAAO,SAAS,IAAI;AAEd,iBAAA,OAAO,UAAU,GAAG,EAAE;AAAA,MAAA;AAGhC,aAAO,IAAI,QAAQ,SAAS,IAAI,KAAK,MAAM,GAAG,GAAG;AAAA,QAChD,IAAI,IAAI,KAAK,MAAM,MAAM;AAAA,QACzB,MAAM;AAAA,MACN,CAAA,EAAE,SAAS;AAAA,IACb;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAQA,QAAoB,SAAiB,KAAa,QAAgB,aAAkB,KAAK,KAAe;AACvG,UAAI,CAAC,SAAS;AACN,eAAA;AAAA,MAAA;AAIJ,UAAA,IAAI,SAAS,IAAI;AAEd,cAAA,IAAI,OAAO,IAAI,GAAG;AAAA,MAAA;AAIrB,UAAA,IAAI,SAAS,IAAI;AAEd,cAAA,IAAI,UAAU,GAAG,EAAE;AAAA,MAAA;AAItB,UAAA,OAAO,SAAS,IAAI;AAEd,iBAAA,OAAO,OAAO,IAAI,GAAG;AAAA,MAAA;AAI3B,UAAA,OAAO,SAAS,IAAI;AAEd,iBAAA,OAAO,UAAU,GAAG,EAAE;AAAA,MAAA;AAG1B,YAAA,aAAa,IAAI,QAAQ,SAAS,IAAI,KAAK,MAAM,GAAG,GAAG;AAAA,QAC5D,IAAI,IAAI,KAAK,MAAM,MAAM;AAAA,QACzB,MAAM;AAAA,MAAA,CACN;AACG,UAAA;AACH,cAAM,SAAS,WAAW,SAAS,IAAI,IAAI;AACpC,eAAA,KAAK,MAAM,MAAM;AAAA,eAChB,OAAO;AACf,qBAAa,aAAa,KAAK;AACxB,eAAA;AAAA,MAAA;AAAA,IACR;AAAA,EAEF;AAAA;AAAA;AAAA;AAAA,EAIA,MAAM;AAAA;AAAA;AAAA;AAAA;AAAA,IAKL,QAAQ,SAAyB;AAChC,UAAI,CAAC,SAAS;AACN,eAAA;AAAA,MAAA;AAGR,aAAO,KAAK,OAAO,EAAE,SAAS,IAAI,GAAG,EAAE,YAAY;AAAA,IAAA;AAAA,EAErD;AAAA;AAAA;AAAA;AAAA,EAIA,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA,IAKJ,QAAQ,SAAyB;AAChC,UAAI,CAAC,SAAS;AACN,eAAA;AAAA,MAAA;AAGR,aAAO,IAAI,OAAO,EAAE,SAAS,IAAI,GAAG,EAAE,YAAY;AAAA,IAAA;AAAA,EACnD;AAEF;"}