三言两语

区块链基础技术——哈希函数

学习数据结构时遇到一种很有意思的数据结构——哈希表,其最吸引人的特性就是插入、查找时间复杂度均为\(O(1)\)(假定哈希函数不发生哈希碰撞),大大优于其它常见数据结构,如链表、树等。哈希表是哈希函数最主要的应用场合。同时,哈希函数是区块链的基础技术之一

哈希函数就是一个数学函数,它能够将任意规模大小的数据映射到固定规模大小(如256位)的数据。哈希函数的返回值称作哈希值,哈希码,摘要或者简称哈希。最简单的,\(f(x)=x \bmod 2\)就可以看作一个哈希函数,它将整数根据其奇偶性映射到了1或0。对这个简单的哈希函数,如果有了\(f(x)\)的值,即1或0,我们很容易就可以找到一个整数y,即只要与x奇偶相同,即可使得\(f(x) == f(y)\);而且,对于所有偶数的哈希值都相同,所有奇数的哈希值也都相同,这就发生了哈希碰撞,即对于两个不同的数,\(x\)和\(y\),其哈希值相等,\(f(x) == f(y)\)。

简单哈希算法

除法
平方

加密哈希函数(Cryptographic Hash Function)

常用哈希算法

SHA-1
MD5
SHA-256
RIPEMD-160
Scrypt

哈希碰撞

王小云

哈希算法组合使用

串联组合

并联组合

热评文章