前端常用加密方式实战指南
在前端安全领域,我们常遇到数据加密、签名验证等需求。这里梳理了 Base64、MD5、SHA-256、AES 及 RSA 等常见方案的原理与实现,并补充了一些工程实践中的注意事项。
1. Base64 编码
Base64 本质上是一种编码方法而非加密算法。它将二进制数据转换为基于 64 个可打印字符的文本字符串,常用于 URL 传输、Cookie 存储或内嵌小图片以减少服务器请求。
它的优势是简单且性能开销小,但缺点是会增加约 33% 的数据体积,且不具备保密性,任何人都能解码还原。
function toBase64(str) {
return btoa(unescape(encodeURIComponent(str)));
}
function fromBase64(str) {
return decodeURIComponent(escape(atob(str)));
}
// 使用示例
const originalText = "Hello, World!";
const encodedText = toBase64(originalText);
console.log(encodedText); // "SGVsbG8sIFdvcmxkIQ=="
const decodedText = fromBase64(encodedText);
console.log(decodedText); // "Hello, World!"
2. MD5 加密
MD5 是一种广泛使用的哈希函数,生成 128 位(16 字节)的哈希值。虽然计算速度快,但由于存在碰撞风险,安全性已不足够,不推荐直接用于密码存储。
import CryptoJS from 'crypto-js';
function md5Encrypt(str) {
return CryptoJS.MD5(str).toString();
}
originalText = ;
encryptedText = (originalText);
.(encryptedText);


