插件窝 干货文章 web中常用的加密算法有哪些

web中常用的加密算法有哪些

密钥 算法 加密 哈希 523    来源:    2025-04-24

在Web开发中,常用的加密算法主要分为以下几类,每种算法有不同的应用场景和特点:


1. 对称加密(Symmetric Encryption)

特点:加密和解密使用同一个密钥,速度快,适合大数据量加密。
常用算法: - AES(Advanced Encryption Standard)
- 密钥长度:128/192/256位
- 应用场景:HTTPS数据传输、文件加密(如数据库敏感字段)。
- DES(Data Encryption Standard)
- 已淘汰(密钥过短,56位易被暴力破解),由3DES替代。
- 3DES(Triple DES)
- 对DES的三次迭代,安全性提升但性能较差,逐步被AES取代。
- ChaCha20
- 谷歌推出的高效算法,用于替代AES(如TLS 1.3中部分场景)。


2. 非对称加密(Asymmetric Encryption)

特点:使用公钥加密、私钥解密,安全性高但性能较低,适合密钥交换或签名。
常用算法: - RSA
- 密钥长度:2048位或以上(推荐)。
- 应用场景:SSL/TLS密钥交换、数字签名。
- ECC(Elliptic Curve Cryptography)
- 密钥更短(256位相当于RSA 3072位),性能更好。
- 应用场景:移动设备(如ECDSA签名)、区块链(比特币使用secp256k1曲线)。
- DH(Diffie-Hellman)
- 用于密钥交换(如TLS的ECDHE密钥交换协议)。


3. 哈希算法(Hash)

特点:单向不可逆,固定长度输出,用于数据完整性校验或密码存储。
常用算法: - SHA-256/SHA-3
- 属于SHA-2/SHA-3家族,替代旧版SHA-1(已不安全)。
- 应用场景:文件校验、区块链(比特币用SHA-256)。
- MD5
- 已淘汰(易碰撞攻击),仅用于非安全场景(如文件一致性检查)。
- bcrypt/PBKDF2/Argon2
- 专为密码存储设计(加盐+慢哈希),抵御彩虹表攻击。


4. 消息认证码(MAC)

特点:验证消息完整性和真实性,需共享密钥。
常用算法: - HMAC(Hash-based MAC)
- 结合哈希算法(如HMAC-SHA256),用于API签名验证。
- CMAC
- 基于分组加密(如AES-CMAC)。


5. 数字签名(Digital Signature)

特点:私钥签名、公钥验签,确保来源和完整性。
常用算法: - RSA-PSS
- 比旧版RSA-PKCS#1更安全。
- ECDSA
- 基于ECC的高效签名(如TLS证书、比特币交易)。


6. 密钥派生算法(KDF)

特点:从密码生成密钥,增强安全性。
常用算法: - PBKDF2
- 通过多次哈希迭代抵御暴力破解。
- Scrypt/Argon2
- 抗GPU/ASIC攻击(Argon2为密码哈希竞赛冠军)。


7. TLS/SSL中的加密套件

现代HTTPS(TLS 1.2/1.3)常用组合:
- 密钥交换:ECDHE(前向安全)。
- 对称加密:AES-GCM或ChaCha20-Poly1305。
- 签名算法:ECDSA或RSA-PSS。


选择建议

  1. 数据传输加密:AES-GCM(对称) + ECDHE(密钥交换)。
  2. 密码存储:Argon2或bcrypt。
  3. API签名:HMAC-SHA256。
  4. 证书/签名:ECDSA(性能优)或RSA(兼容性广)。

注意事项

  • 避免使用:DES、MD5、SHA-1、RC4等已淘汰算法。
  • 密钥管理:对称密钥需安全存储(如KMS服务),非对称私钥严禁泄露。
  • 性能权衡:非对称加密适合小数据量,对称加密适合大数据量。

根据具体场景(性能、安全性、兼容性)选择合适的算法组合。