前端-常用的web加密算法
Web Crypto API这是现代浏览器提供的标准化API是目前推荐的前端加密方式。它支持多种加密算法包括AES对称加密、RSA非对称加密、SHA系列哈希算法等。注意Web Crypto API 只能在安全上下文下使用即 HTTPS 协议的网站或者localhost。AES-GCM是 Web Crypto API 中推荐的一种 AES 模式它同时提供了加密和认证。对称加密 - AES (Advanced Encryption Standard)特点是加密和解密使用同一个密钥。效率高适合加密大量数据。在前端通常通过 Web Crypto API 实现。哈希算法 - SHA-256 (Secure Hash Algorithm 256-bit)用于生成数据的“指纹”通常不可逆。应用场景包括验证数据完整性、存储密码的哈希值通常会加盐但这在前端加盐意义不大主要是后端处理。在前端可以通过 Web Crypto API 获取 SHA-256 哈希值。消息认证码 - HMAC (Hash-based Message Authentication Code)结合了哈希函数和密钥用于验证消息的完整性和真实性。在前端可以通过 Web Crypto API 实现。密钥派生函数 - PBKDF2 (Password-Based Key Derivation Function 2)常用于从用户密码派生出更强的加密密钥尤其适用于密码存储尽管如前所述主要应在后端执行。在前端可以通过 Web Crypto API 实现。Base64请注意Base64不是加密算法而是一种编码方式。用于将二进制数据转换为 ASCII 字符串格式方便在网络上传输例如嵌入到JSON或URL中。它可以被轻易地解码回原始数据因此不具备安全性。JavaScript 提供了原生的btoa()(编码) 和atob()(解码) 函数。MD5也是一种哈希算法但已被证明存在安全漏洞容易发生碰撞不再被认为是安全的。应该避免在需要安全保障的场景中使用。总结与注意事项首选 Web Crypto API: 对于需要在前端进行的加密、哈希或签名操作优先考虑使用浏览器内置的 Web Crypto API。密钥安全: 绝对不要将加密密钥硬编码在前端代码中因为前端代码对用户是可见的。HTTPS 必备: 所有涉及敏感数据传输的应用都必须使用 HTTPS 来保证传输通道的安全。后端为主: 前端加密通常作为辅助手段核心的业务逻辑和敏感数据处理如用户登录验证、关键信息加密必须在后端服务器上完成。避免老旧/不安全算法: 避免使用 MD5、SHA-1 等已知不安全的哈希算法以及 ECB 模式的 AES 等不安全的加密模式。