在 Angular 8 中使用 AES 加密和解密时,如果您在解密文本时遇到开头的垃圾值,通常是由于以下几个原因导致的:
以下是一个使用 CryptoJS 库进行 AES 加密和解密的示例,确保您在加密和解密时遵循相同的步骤。
首先,确保您已经安装了 CryptoJS:
npm install crypto-js
以下是一个简单的示例,展示如何在 Angular 中使用 AES 进行加密和解密:
import * as CryptoJS from 'crypto-js';
const secretKey = 'your-secret-key'; // 确保密钥长度为16字节(128位)
const iv = CryptoJS.enc.Utf8.parse('1234567890123456'); // 16字节的IV
// 加密函数
function encrypt(text: string): string {
const encrypted = CryptoJS.AES.encrypt(text, CryptoJS.enc.Utf8.parse(secretKey), {
iv: iv,
mode: CryptoJS.mode.CBC,
padding: CryptoJS.pad.Pkcs7
});
return encrypted.toString(); // 返回 Base64 编码的字符串
}
// 解密函数
function decrypt(ciphertext: string): string {
const decrypted = CryptoJS.AES.decrypt(ciphertext, CryptoJS.enc.Utf8.parse(secretKey), {
iv: iv,
mode: CryptoJS.mode.CBC,
padding: CryptoJS.pad.Pkcs7
});
return decrypted.toString(CryptoJS.enc.Utf8); // 返回解密后的字符串
}
// 示例
const originalText = 'Hello, World!';
const encryptedText = encrypt(originalText);
console.log('Encrypted:', encryptedText);
const decryptedText = decrypt(encryptedText);
console.log('Decrypted:', decryptedText);
如果您在解密时仍然遇到垃圾值,您可以尝试以下步骤:
领取专属 10元无门槛券
手把手带您无忧上云