什么是加密?密钥、哈希与校验和
加密把可读信息转换为密文,只有使用正确的密钥才能还原。其目的是在传输或存储过程中保持数据机密。哈希和校验和解决的是另一类问题:无法通过“解密”它们的输出来恢复原始消息。混淆这些操作可能带来虚假的安全感。
密钥与加密过程
加密算法将明文与密钥结合,生成密文。在对称加密中,各方共享同一个秘密密钥。在非对称体系中,公钥和对应的私钥承担不同的角色。算法、工作模式、密钥质量和密钥的保存方式都很重要。如果密码一猜就中,或者密钥和文件通过同一条未加保护的消息一起发出,那么即使说文件“已加密”,也说明不了它有多安全。现代应用应当使用成熟的协议和认证加密,而不是临时拼凑一系列文本转换。
哈希与校验和有何不同
密码学哈希会为数据生成固定长度的摘要;它并不是输入内容的加密副本。SHA-256 摘要可以帮助您把下载的文件与可信发布者公布的摘要进行比对。这种比对检查的是内容是否一致,并不能隐藏文件内容。存储密码需要使用带盐值且计算成本可调的专用密码哈希方法。CRC32 适合检测传输中的意外错误,但不能作为抵御蓄意篡改的认证机制。MD5 和 SHA-1 不适合用于需要抗碰撞性的新场景。NIST 介绍了其逐步淘汰 SHA-1 的计划。2IP 哈希生成器可以计算文本的哈希值和校验和。
两个常见示例
如需分享一份机密文档,请选择可信的应用对文件进行加密和认证,并通过另一条受保护的渠道告知口令。收件人使用正确的密钥即可还原内容。如需检查下载的压缩包,则应计算其哈希值,并与从发布者真实页面获取的值进行比对。这是两种不同的流程:哈希并不能阻止他人读取压缩包。如果网站显示的是 Base64 文本,任何人无需密钥都能解码;编码不等于加密。
需要记住的局限
TLS 保护的是端点之间传输中的数据,但并不能保证任何一个端点本身值得信任。设备上的恶意软件、泄露的密钥或薄弱的账户恢复流程,都可能使原本可靠的密码学措施失效。选择在线文本工具时,要弄清所选操作是在加密、计算哈希,还是仅仅在编码。不要仅仅因为某个按钮上写着“安全”,就把私人文档或凭据粘贴到不熟悉的服务中。使用前请先确认数据会如何被处理和保留。
TLS 1.3 与连接安全
在 HTTPS 中,加密是更大协议的一部分:TLS 负责协商参数、建立密钥并验证服务器证书。现代的 TLS 1.3 移除了若干旧有选项,并简化了常规握手流程。TLS 1.3 握手指南更详细地介绍了这一过程。TLS 保护的是发往指定对端的传输中数据;它本身并不能证明一个网站值得信任。