第五章 哈希
我们回顾第四章公钥的场景
假设小白作为黑客,他想破坏小强的约会,向餐厅客服发消息,取消晚上6点的定餐。小白也使用了餐厅客服的公钥加密信息发送给了餐厅客服,餐厅客服通过自己的私钥解密后,得到了两种不同的结果,那他就晕了,到底哪一个消息才是真的呢?现代密码技术为了解决这个问题,引入了消息认证,其底层的技术就是哈希函数,也叫做单向散列函数。
5.1 什么是哈希函数
哈希函数是密码学的一个重要分支,它是一种将任意长度的输入变换为固定长度的输出且不可逆的单向密码体制。哈希函数在数字签名和消息完整性检测等方面有着广泛的应用。
我们使用现在最常用的SHA256算法(也是比特币所使用的算法)为例:
import hashlib
text = '晚上6点,情侣套餐'
text = hashlib.sha256(text.encode('utf-8')).hexdigest()
print('"晚上6点,情侣套餐"哈希结果:',text)
text2 = '晚上7点,情侣套餐'
text2 = hashlib.sha256(text2.encode('utf-8')).hexdigest()
print('"晚上7点,情侣套餐"哈希结果:',text2)