學(xué)習(xí)了一個很好的默克爾樹專題(https://blog.csdn.net/wo541075754/article/details/54632929),將自己對hash過程的理解費(fèi)曼了一遍,請大家指正。
如何將“hello world!”進(jìn)行哈希處理?
step1:把數(shù)據(jù)分割成n塊.
此處即把hello world!分割為5塊, “he” ,"ll", "o","wo","rld","!"。
step2: 把數(shù)據(jù)塊進(jìn)行哈希運(yùn)算.
假設(shè)這個神秘的哈希運(yùn)算大法為hash(ooxx), 那么對step1中的數(shù)據(jù)塊施法將得到哈希值:
hash(he)=00, hash(llo)=01, hash(wo)=10, hash(rld)=11 ,hash(!)=20;
此處的哈希值00,01,10是我隨便寫的,你明白它們是數(shù)據(jù)塊的被哈希的結(jié)果就行啦..
step3: 將相鄰兩個hash塊串聯(lián),再做hash運(yùn)算.
hash(0001) =馬,hash(1011)= 斯,hash(20)=克;
此處的哈希值馬、斯、克是我隨便寫的,你明白它們是上一步的哈希結(jié)果再一次被哈希的結(jié)果就行啦..
step4: 重復(fù)step2 .
hash(馬斯) =牛,hash(克)= 比;
step5:重復(fù)step2 ,完成哈希大法,將"hello word!"哈希為“666”.
hash(牛比) =666;

image.png
聽說技術(shù)大牛和未來的技術(shù)大牛都有點(diǎn)贊的好習(xí)慣:)