对称加密算法解析 对称加密使用相同的密钥进行加密和解密,是最常用的加密方式。 常见算法 AES 高级加密标准: ChaCha20 Google推崇的流密码: 速度快 移动端优势 抗侧信道攻击 3DES 已不推荐使用: 速度慢 安全性不如AES 将被淘汰 工作模式 ECB模式 不推荐使用: 相同明文生成相同密文 不能保护数据完整性 CBC模式 最常用: GCM模式 认证加密: 提供完整性保护 并行加密 推荐使用 密钥管理 密钥长度 密钥存储 密钥轮换 定期更换密钥: 降低泄露风险 符合合规要求 限制影响范围 实践建议 使用标准算法:AES、ChaCha20 选择合适模式:GCM、CBC 保护密钥安全:使用KMS 防止重放攻击:添加随机数 验证数据完整性:使用HMAC
对称加密使用相同的密钥进行加密和解密,是最常用的加密方式。
高级加密标准:
from Crypto.Cipher import AES from Crypto.Util.Padding import pad, unpad key = b'sixteen byte key' cipher = AES.new(key, AES.MODE_CBC) # 加密 plaintext = b'Hello, World!' ciphertext = cipher.encrypt(pad(plaintext, AES.block_size)) # 解密 decipher = AES.new(key, AES.MODE_CBC, cipher.iv) decrypted = unpad(decipher.decrypt(ciphertext), AES.block_size)
Google推崇的流密码:
已不推荐使用:
不推荐使用:
最常用:
明文块1 -> 加密 -> 密文块1 ⊕ IV -> 密文块0
认证加密:
AES-128:16字节 AES-192:24字节 AES-256:32字节(推荐)
# 使用环境变量 import os key = os.environ.get('ENCRYPTION_KEY') # 使用密钥管理服务 from aws_kms import get_key key = get_key('key-id')
定期更换密钥:
对称加密高效安全,但密钥管理是关键。