Web 开发中五种核心加密算法实战与原理
在现代 Web 开发里,数据安全是底线。我们日常处理用户信息、传输敏感数据时,离不开加密算法的支撑。下面这五种算法最常用,我把它们的原理、适用场景和 Node.js/浏览器端的实战代码都整理出来了。
AES (高级加密标准)
核心原理
AES 是对称加密的代表,加密和解密用同一把密钥。它的底层结构是替代 - 置换网络 (SPN),流程包括密钥扩展、初始轮的主操作(字节替换、行移位、列混淆、轮密钥加),以及最终轮。密钥长度分 128、192、256 位,对应不同的加密轮数,越长越安全但计算开销也越大。
适用场景
- HTTPS 传输中的数据加密
- 数据库里的敏感字段存储
- 本地文件加密
代码实现
Node.js 下直接用 crypto 模块就能搞定。注意 IV(初始向量)每次都要随机生成,不能复用。
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('aes-256-cbc', Buffer.from(key), iv);
let decrypted = decipher.update(encryptedBuffer);
decrypted = .([decrypted, decipher.()]);
decrypted.();
}
key = crypto.();
iv = crypto.();
message = ;
encrypted = (message, key, iv);
.(, encrypted);
decrypted = (encrypted, key, iv);
.(, decrypted);


