对称加密
对称加密指的是加密和解密使用同一把密钥的加密方式,别名「对称密钥」「私钥加密」——注意这里的「私钥」是指必须保密的共享密钥,和非对称加密里那个和公钥配对的「私钥」不是同一个概念。发送方用密钥把明文变成密文,接收方用同一把密钥把密文还原成明文,所以双方必须事先安全地共享并保管好这把密钥。
它的思路从简单到复杂都有:本站的 caesar(凯撒密码)按固定位数移位,vigenere(维吉尼亚)用关键字做多表移位,xor-cipher 则把明文与密钥逐位做异或——它们都是「同一密钥可加可解」的对称结构,适合教学演示,但都已被现代密码分析破解,不能用来真正保护数据。工程上真正在用的对称算法是 AES、ChaCha20(DES/3DES 已淘汰),共同特点是速度快、适合加密大量数据。
几个常见误区:
- 别把对称加密和哈希混为一谈:哈希(如
SHA-256)是不可逆的单向摘要,而加密是可逆的,拿密钥能解回明文。 - 密钥分发才是最大难题:怎么把密钥安全交到对方手里?实践中常先用非对称加密传递这把对称密钥,再用对称加密传输数据。
- 安全性取决于密钥而非算法保密——算法应公开且经过检验,密钥长度要足够(如
AES-128及以上)。
常见问题
对称加密和非对称加密有什么区别?
对称加密的加密和解密用的是同一把密钥,速度快,但难点在于要安全地把密钥共享给对方。非对称加密用一对不同的密钥(公钥加密、私钥解密),解决了密钥分发问题,但运算更慢。实际系统通常把两者结合:先用非对称加密传对称密钥,再用对称加密传数据。
凯撒、维吉尼亚这类古典密码现在还能用吗?
不能用于真实的安全场景。它们密钥空间太小、又留有明显的统计规律,用频率分析等手段很容易破解。它们只适合用来学习和演示加密的基本原理,真正保护数据请用 AES、ChaCha20 等现代算法。
对称加密和哈希是一回事吗?
不是。哈希是单向、不可逆的,主要用于数据校验和存储指纹(比如密码摘要),无法还原出原文。对称加密是可逆的,只要持有密钥就能把密文解回明文,两者用途完全不同。