vlambda博客
学习文章列表

Hash——散列函数(哈希算法)

Hash,一般翻译做散列,或音译为哈希,普遍将其称之为散列函数,是把任意长度的 输入 (又叫做预映射pre-image)哈希算法的处理,转变为固定长度的 输出 ,则输出的数据就可称之为散列值,或称之为哈希值。这种转换是一种 压缩映射 ,也就是一种合理压缩的过程,输出的哈希值所占用的空间远小于输入的空间,但不同的输入可能会散列成相同的输出,换言之,输出值是唯一的,但无法找寻与其一一对应的输入值。


应  用  方  向

由于散列函数应用的多样性,它们经常是专为某一应用而设计的。


错误校验
使用一个散列函数可以很直观地检测出数据在传输时发生的错误。在数据的发送方,将散列函数应用于未发送的数据中,并将计算结果和原始数据一同发送。那么,在数据的接收方,将接收到的数据利用相同的散列函数进行处理,如果两次散列函数计算出来的结果不同,那么就说明数据在传输的过程中出现了差错。这就叫做 冗余校验

信息安全

Hash算法是现代密码体系中保密程度最高的一种方式。由于非对称算法既费时又费力的弊端,所以在数字签名协议中,单向散列函数完全的取代了传统的加密方式。


区块链技术也正是看中了它仅可“单向”操作的这一特性,才将其收入麾下,来对整个区块链基于底层区块所延伸出来的所有区块进行校验,以保证后续上链区块的准确性和吻合性。