36 lines
999 B
JavaScript
36 lines
999 B
JavaScript
|
|
|
||
|
|
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
|
||
|
|
}
|