Skip to content

AES示例(CryptoJS)

js
import CryptoJS from 'crypto-js';

const options = {  
  mode: CryptoJS.mode.ECB,  
  padding: CryptoJS.pad.Pkcs7  
};  
// 加密内容为 1627983689123
const srcs = CryptoJS.enc.Utf8.parse('1627983689123');  
// 加密的key 1234567891adbcdd
const key = CryptoJS.enc.Utf8.parse('1234567891adbcdd');  
const encrypted = CryptoJS.AES.encrypt(srcs, key, options);

// ciphertext 的形式输出  【二进制】
const result = encrypted.ciphertext.toString();  
console.log(result); 
// toString形式的输出 【base64】
console.log(encrypted.toString()); // 直接输出的base64

// 可直接解析内容
// 解密  `encrypted.toString()`
const decrypted = CryptoJS.AES.decrypt(encrypted.toString(), key, options);  
const dept = CryptoJS.enc.Utf8.stringify(decrypted); // 转换为 utf8 字符串  
console.log(dept);  
  
// 解密  `encrypted.ciphertext.toString()` 形式的数据
const decrypted1 = CryptoJS.AES.decrypt({ ciphertext: CryptoJS.enc.Hex.parse(result) }, key, options);  
const dept1 = CryptoJS.enc.Utf8.stringify(decrypted1); // 转换为 utf8 字符串  
console.log(dept1);
import CryptoJS from 'crypto-js';

const options = {  
  mode: CryptoJS.mode.ECB,  
  padding: CryptoJS.pad.Pkcs7  
};  
// 加密内容为 1627983689123
const srcs = CryptoJS.enc.Utf8.parse('1627983689123');  
// 加密的key 1234567891adbcdd
const key = CryptoJS.enc.Utf8.parse('1234567891adbcdd');  
const encrypted = CryptoJS.AES.encrypt(srcs, key, options);

// ciphertext 的形式输出  【二进制】
const result = encrypted.ciphertext.toString();  
console.log(result); 
// toString形式的输出 【base64】
console.log(encrypted.toString()); // 直接输出的base64

// 可直接解析内容
// 解密  `encrypted.toString()`
const decrypted = CryptoJS.AES.decrypt(encrypted.toString(), key, options);  
const dept = CryptoJS.enc.Utf8.stringify(decrypted); // 转换为 utf8 字符串  
console.log(dept);  
  
// 解密  `encrypted.ciphertext.toString()` 形式的数据
const decrypted1 = CryptoJS.AES.decrypt({ ciphertext: CryptoJS.enc.Hex.parse(result) }, key, options);  
const dept1 = CryptoJS.enc.Utf8.stringify(decrypted1); // 转换为 utf8 字符串  
console.log(dept1);

参考:
在线AES加密解密 - 拉米工具
crypto-js AES 使用经验 | Moln’s blog