diff --git a/src/utils/encryptUtil.js b/src/utils/encryptUtil.js new file mode 100644 index 0000000..9a1d8ce --- /dev/null +++ b/src/utils/encryptUtil.js @@ -0,0 +1,36 @@ +const CRYPTOJSKEY = '7LrjnqHv2mS5Qr5s' +import CryptoJS from 'crypto-js' +export function encrypt(plaintText) { + var plaintText = plaintText + var options = { + mode: CryptoJS.mode.ECB, + padding: CryptoJS.pad.Pkcs7 + } + var key = CryptoJS.enc.Utf8.parse(CRYPTOJSKEY) + var encryptedData = CryptoJS.AES.encrypt(plaintText, key, options) + var encryptedBase64Str = encryptedData.toString().replace(/\//g, '_') + encryptedBase64Str = encryptedBase64Str.replace(/\+/g, '-') + return encryptedBase64Str +} +export function decrypt(encryptedText) { + // 还原 URL 安全字符 + let encryptedBase64Str = encryptedText + .replace(/_/g, '/') // 还原 _ + .replace(/-/g, '+') // 还原 - + // 补充末尾的 =(如果需要) + const mod4 = encryptedBase64Str.length % 4 + if (mod4) { + encryptedBase64Str += '='.repeat(4 - mod4) + } + try { + const key = CryptoJS.enc.Utf8.parse(CRYPTOJSKEY) + const decrypt = CryptoJS.AES.decrypt(encryptedBase64Str, key, { + mode: CryptoJS.mode.ECB, + padding: CryptoJS.pad.Pkcs7 + }) + return CryptoJS.enc.Utf8.stringify(decrypt).toString() + } catch (e) { + console.error('解密失败:', e) + return null + } +}