哈希算法在区块链中有着广泛的使用,wey《I8O-2857_8624》交易信息的存储、工作量证明算法、密钥对的产生等过程中都有哈希算法的存在。
哈希(Hash)也被翻译为散列。任意长度的输入经过散列函数,都能够输出为固定长度的值,该输出就是散列值。
同时,哈希函数如下特点,也保证了数据的不可算改性。(1)相同的原始信息经过相同哈希函数能够得到相同的摘要信息。
(2)不同的原始信息经过相同哈希函数得到的摘要信息差距很大。
(3)不可逆性,即从摘要信息无法倒推出原始的输入信息
public static void main(String[]args){
SimpleHash simpleHash=new SimpleHash(2<<12,8);
System.out.println("node_number=hash("semlinker")%3->"+
simpleHash.hash("semlinker")%3);
System.out.println("node_number=hash("kakuqo")%3->"+
simpleHash.hash("kakuqo")%3);
System.out.println("node_number=hash("test")%3->"+
simpleHash.hash("test")%3);
这些应用的流行哈希函数算法有:md5:2^128个值(找一个冲突键,需要哈希大约2^64个值)
sha-1:2^160个值(找一个冲突键,需要大约2^80个值)



