哈希(英語:Hashing)是計算機科學中一種對數(shù)據(jù)的處理方法,通過某種特定的函數(shù)/算法將要檢索的項與用來檢索的索引關聯(lián)起來,生成一種便于搜索的數(shù)據(jù)結構。它也常用作一種信息安全的實現(xiàn)方法,由一串數(shù)據(jù)中經(jīng)過散列算法(Hashing algorithms)計算出來的數(shù)據(jù)指紋(data fingerprint),經(jīng)常用來識別文件與數(shù)據(jù)是否有被竄改,以保證文件與數(shù)據(jù)確實是由原創(chuàng)者所提供。
如今,散列算法也被用來加密存在數(shù)據(jù)庫中的密碼(password)字符串,由于散列算法所計算出來的散列值(Hash Value)具有不可逆(無法逆向演算回原本的數(shù)值)的性質,因此可有效的保護密碼。---維基百科
哈希算法是將文件映射為較短的固定長度字符串(哈希值)?!S基百科
哈希就是把一個東西變成一串字符,這一串字符就代表了這一個東西,并且僅僅代表這一個東西。
不同的東西的哈希值不一樣,哪怕是稍稍改動,哈希值也是面目全非。所以哈希運算可以對文章進行存證,對賬單進行存證,并且原賬單如果被篡改,哈希值也就不一樣。
對本篇文章進行哈希,然后再加上一個時間戳,這就是版權存證了。哈希算法的優(yōu)點是只存儲文件的哈希值就可以而不用存儲原件,這樣就減小了數(shù)據(jù)庫的容量,也提高了運算速度,所以才能夠用在搜索引擎上面。
比特幣網(wǎng)絡只存儲哈希值的情況下總區(qū)塊大小已經(jīng)有一兩百個G,如果存儲元交易數(shù)據(jù)的話,其大小不知會有多大,恐怕就沒有多少人愿意去運行全節(jié)點。哈希算法可以把復雜的東西簡單化,就像湯強的文章一樣,總是能夠把復雜的概念通俗的表述出來。
下面給讀者提供兩個哈希工具,供大家玩耍,也希望大家能夠在玩耍的同時能夠對哈希算法能夠有一個更加深刻地認識。
1、哈希文件:http://www.atool.org/file_hash.php
2、哈希字符:http://www.kjson.com/encrypt/hash/?fm=map
“驍馬奔騰”的sha256哈希值為:548c1b5a0f35c44cf53ff5b00f06a9cdfe4b608d8f7f478d8708c4127feea79f
以上文字是讀湯強《如何給你的文件設定獨一無二的編號?》文章的學習筆記。