密码学中,最重要的函数之一是哈希函数。哈希函数将任意大小的数据(内容)映射到固定大小的数据(哈希值)。
哈希函数是单向的,从内容生成哈希值很容易,但从哈希值映射到内容很难。
比特币使用SHA-256哈希函数,该函数生成一个大小为256位(32字节)的哈希值(输出)。如图所示
Bob在向Alice下订单时,创建了一条类似于上面所示的消息。把这个消息通过哈希函数生成32字节的哈希值。
哈希值的特点是,哈希值对于对于消息内容是唯一的,消息内容有任何改动,哪怕是多了个字符,生成的哈希值也是不一样的。
所以哈希值通常可以用来校验内容是否篡改。