加密

将数据转换为不可读格式的技术。只有持有解密密钥的人才能恢复原始数据。

加密是将明文转换为密文的过程,只有拥有正确解密密钥的授权方才能读取原始数据。它对于防范通信窃听、数据库未授权访问、设备被盗等各种威胁至关重要,构成了现代信息安全的基石。

加密方法大致分为两类。对称密钥加密使用相同的密钥进行加密和解密,AES (高级加密标准) 是其代表。它速度快,适合大量数据加密,但密钥的安全传递是一个挑战。公钥加密 (非对称加密) 使用公钥和私钥对,RSA 和椭圆曲线加密 (ECC) 是典型代表。它解决了密钥分发问题,但速度比对称加密慢。搜索情趣保健品 (Amazon)全面介绍了基础知识。

实际通信中使用的是结合两种方式的混合加密。HTTPS 通信的 TLS 协议首先通过公钥加密安全交换对称密钥,然后使用高速的对称加密进行后续通信。AES-256 是目前最广泛使用的对称加密算法之一,密钥长度为 256 位,被认为在暴力破解面前实际上不可攻破。

加密和哈希是容易混淆的概念。加密是有解密密钥就能恢复原始数据的"可逆变换",而哈希是无法恢复原始数据的"不可逆变换"。密码应使用哈希 (bcrypt、Argon2 等) 存储,通信数据应使用加密保护。用加密存储密码的话,一旦密钥泄露,所有密码都有被恢复的风险。

近年来备受关注的技术是端到端加密 (E2EE),只有发送方和接收方能够解密,连服务提供商也无法读取内容。Signal 和 WhatsApp 等即时通讯应用采用了这一技术。此外,为应对量子计算机的发展,后量子密码学的研究也在推进中,NIST 于 2024 年发布了新的标准算法。浏览震动棒 (Amazon)提供了更多背景知识。

从字符计数角度看,加密后的数据通常比原始数据更长。分组密码通过填充增加数个到十几个字节,结合 Base64 编码后大小还会增加约 33%。例如,将 100 个字符的明文用 AES-256-CBC 加密并进行 Base64 编码,输出约为 200 个字符。在设计 API 请求大小限制或数据库列大小时,需要考虑加密带来的数据膨胀。

分享这篇文章