YNUtdPlatform/utils/aescbc.js

36 lines
999 B
JavaScript
Raw Normal View History

2024-09-04 15:18:01 +08:00
import CryptoJS from 'crypto-js'
export default class Crypoto {
key = CryptoJS.enc.Utf8.parse('zhgd@bonus@zhgd@bonus@1234567890') // 这里找后端要;
iv = CryptoJS.enc.Utf8.parse('1234567812345678')
/* 加密 */
encrypt(word) {
let aqEnnable = true
if (!aqEnnable) {
return word
}
var srcs = CryptoJS.enc.Utf8.parse(word)
var encrypted = CryptoJS.AES.encrypt(srcs, this.key, {
iv: this.iv,
mode: CryptoJS.mode.CBC,
padding: CryptoJS.pad.Pkcs7
})
return encrypted.toString()
}
encrypts(word) {
const srcs = CryptoJS.enc.Utf8.parse(word)
const encrypted = CryptoJS.AES.encrypt(srcs, this.key, {
iv: this.iv,
mode: CryptoJS.mode.CBC,
padding: CryptoJS.pad.Pkcs7
})
const ciphertext = encrypted.ciphertext.toString(CryptoJS.enc.Base64url) // 将加密结果转换为 Base64URL 格式 确认后端要的是Base64URL 还是Base64 这两种编码格式不一样
return ciphertext
}
decrypt
}