加密保护了信息的“机密性”但你怎么知道信息没有被篡改哈希算法可以生成信息的唯一“指纹”让你瞬间发现哪怕一个标点符号的变化。1. 哈希函数定义哈希函数 H 将任意长度的输入消息映射为固定长度的输出哈希值或摘要。特点确定性相同输入 → 相同输出单向性无法从输出反推输入抗碰撞很难找到两个不同输入产生相同输出2. 完整性验证过程发送方计算消息 M 的哈希值 H(M)将 M 与 H(M) 一起发送接收方收到 M 与收到的哈希值 h计算 H(M)如果等于 h则 M 未被篡改3. 常见哈希算法算法输出长度安全性MD5128 bit已破解不推荐SHA-1160 bit已碰撞逐步淘汰SHA-256256 bit目前安全4. 编程示例pythonimport hashlibdata bhello worldhash_obj hashlib.sha256(data)print(hash_obj.hexdigest())# 64位十六进制字符串5. 哈希的其他用途数字签名先哈希再签名密码存储存哈希不存明文区块链区块哈希链接文件校验下载后比对哈希哈希算法不加密任何内容但它解决了“信息是否完整”这个同等重要的问题。没有哈希就没有现代数字签名和区块链。