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