YNUtdPlatform/utils/aescbc.js

55 lines
1.4 KiB
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
}
2024-09-06 17:35:31 +08:00
const jie_mi=true;
/**
* 解密
* @param word
* @returns {*}
*/
export const decryptCBC = function(word) {
if(!jie_mi){
return word;
}
const encrypted = CryptoJS.AES.decrypt(word, CryptoJS.enc.Utf8.parse('zhgd@bonus@zhgd@bonus@1234567890'), {
iv: CryptoJS.enc.Utf8.parse('1234567812345678'),
mode: CryptoJS.mode.CBC,
padding: CryptoJS.pad.Pkcs7
})
return encrypted.toString(CryptoJS.enc.Utf8)
}