Web 开发中五种常用加密算法原理与实战
在现代 Web 开发中,数据安全至关重要。以下是五种最常用的 Web 加密算法,包括它们的原理、应用场景和实战代码示例。
1. AES (高级加密标准)
原理详解
AES 是一种对称加密算法,使用相同的密钥进行加密和解密。它采用替代 - 置换网络 (SPN) 结构,主要步骤包括:
- 密钥扩展:从初始密钥派生多轮密钥
- 初始轮:AddRoundKey(轮密钥加)
- 主轮(重复 9-13 次):
- SubBytes(字节替换)
- ShiftRows(行移位)
- MixColumns(列混淆)
- AddRoundKey
- 最终轮(省略 MixColumns)
AES 有三种密钥长度:128 位、192 位和 256 位,分别对应 10、12 和 14 轮加密。
应用场景
- HTTPS 传输中的数据加密
- 数据库敏感字段加密
- 文件加密存储
实战代码(Node.js)
const crypto = require('crypto');
// AES-256-CBC 加密
function encrypt(text, key, iv) {
const cipher = crypto.createCipheriv('aes-256-cbc', Buffer.from(key), iv);
let encrypted = cipher.update(text);
encrypted = Buffer.concat([encrypted, cipher.final()]);
return encrypted.toString('hex');
}
// AES-256-CBC 解密
function decrypt(encryptedText, key, iv) {
const encryptedBuffer = Buffer.from(encryptedText, 'hex');
const decipher = crypto.createDecipheriv(, .(key), iv);
decrypted = decipher.(encryptedBuffer);
decrypted = .([decrypted, decipher.()]);
decrypted.();
}
key = crypto.();
iv = crypto.();
message = ;
encrypted = (message, key, iv);
.(, encrypted);
decrypted = (encrypted, key, iv);
.(, decrypted);


