JavaScript中最安全的加密通常涉及到使用现代加密标准和技术。以下是一些关键概念和相关信息:
以下是一个使用Web Crypto API进行AES加密和解密的示例:
async function encryptData(data, key) {
const encodedData = new TextEncoder().encode(data);
const iv = crypto.getRandomValues(new Uint8Array(16)); // 初始化向量
const encryptedData = await crypto.subtle.encrypt(
{
name: "AES-GCM",
iv: iv,
},
key,
encodedData
);
return { encryptedData, iv };
}
async function decryptData(encryptedData, key, iv) {
const decryptedData = await crypto.subtle.decrypt(
{
name: "AES-GCM",
iv: iv,
},
key,
encryptedData
);
return new TextDecoder().decode(decryptedData);
}
// 生成密钥
window.crypto.subtle.generateKey(
{
name: "AES-GCM",
length: 256, // 可以是128, 192, or 256
},
true, // 是否可以导出密钥
["encrypt", "decrypt"] // 密钥的用途
).then(key => {
const data = "Hello, World!";
encryptData(data, key).then(({ encryptedData, iv }) => {
decryptData(encryptedData, key, iv).then(decryptedData => {
console.log(`Original Data: ${data}`);
console.log(`Decrypted Data: ${decryptedData}`);
});
});
});
crypto.getRandomValues
。通过遵循这些最佳实践和使用现代加密技术,可以在JavaScript中实现高度安全的加密。
领取专属 10元无门槛券
手把手带您无忧上云