| @ -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 | |||||
| } | |||||
| } | |||||