什麼是Hash加密

2021-08-30 20:12:06 字數 2161 閱讀 1431

hash簡單點講就是把任意一段資料經過某種演算法生成一段唯一的固定長度的資料。也叫做摘要。為了確保資料a免受意外或者故意(惡意)的修改,往往用這段資料a產生乙個hash資料一起傳送出去,接收

hash,一般翻譯做"雜湊",也有直接音譯為"雜湊"的,就是把任意長度的輸入(又叫做預對映, pre-image),通過雜湊演算法,變換成固定長度的輸出,該輸出就是雜湊值。這種轉換是一種壓縮對映,也就是,雜湊值的空間通常遠小於輸入的空間,不同的輸入可能會雜湊成相同的輸出,而不可能從雜湊值來唯一的確定輸入值。

簡單的說就是一種將任意長度的訊息壓縮到某一固定長度的訊息摘要的函式。

hash主要用於資訊保安領域中加密演算法,他把一些不同長度的資訊轉化成雜亂的128位的編碼裡,叫做hash值. 也可以說,hash就是找到一種資料內容和資料存放位址之間的對映關係

了解了hash基本定義,就不能不提到一些著名的hash演算法,md5 和 sha1 可以說是目前應用最廣泛的hash演算法,而它們都是以 md4 為基礎設計的。那麼他們都是什麼意思呢?

這裡簡單說一下:

1) md4

md4(rfc 1320)是 mit 的 ronald l. rivest 在 1990 年設計的,md 是 message digest 的縮寫。它適用在32位字長的處理器上用高速軟體實現--它是基於 32 位運算元的位操作來實現的。

2) md5

md5(rfc 1321)是 rivest 於2023年對md4的改進版本。它對輸入仍以512位分組,其輸出是4個32位字的級聯,與 md4 相同。md5比md4來得複雜,並且速度較之要慢一點,但更安全,在抗分析和抗差分方面表現更好

3) sha1 及其他

sha1是由nist nsa設計為同dsa一起使用的,它對長度小於264的輸入,產生長度為160bit的雜湊值,因此抗窮舉(brute-force)性更好。sha-1 設計時基於和md4相同原理,並且模仿了該演算法。

那麼這些hash演算法到底有什麼用呢?

hash演算法在資訊保安方面的應用主要體現在以下的3個方面:

1) 檔案校驗

我們比較熟悉的校驗演算法有奇偶校驗和crc校驗,這2種校驗並沒有抗資料篡改的能力,它們一定程度上能檢測並糾正資料傳輸中的通道誤碼,但卻不能防止對資料的惡意破壞。

md5 hash演算法的"數字指紋"特性,使它成為目前應用最廣泛的一種檔案完整性校驗和(checksum)演算法,不少unix系統有提供計算md5 checksum的命令。

2) 數字簽名

hash 演算法也是現代密碼體系中的乙個重要組成部分。由於非對稱演算法的運算速度較慢,所以在數字簽名協議中,單向雜湊函式扮演了乙個重要的角色。 對 hash 值,又稱"數字摘要"進行數字簽名,在統計上可以認為與對檔案本身進行數字簽名是等效的。而且這樣的協議還有其他的優點。

3) 鑑權協議

如下的鑑權協議又被稱作"挑戰--認證模式:在傳輸通道是可被偵聽,但不可被篡改的情況下,這是一種簡單而安全的方法。

以上就是一些關於hash以及其相關的一些基本預備知識。那麼在emule裡面他具體起到什麼作用呢?

什麼是檔案的hash值呢?

大家都知道emule是基於p2p (peer-to-peer的縮寫,指的是點對點的意思的軟體), 它採用了"多原始檔傳輸協議"(mftp,the multisource filetransfer protocol)。在協議中,定義了一系列傳輸、壓縮和打包還有積分的標準,emule 對於每個檔案都有md5-hash的演算法設定,這使得該檔案獨一無二,並且在整個網路上都可以追蹤得到。

md5-hash-檔案的數字文摘通過hash函式計算得到。不管檔案長度如何,它的hash函式計算結果是乙個固定長度的數字。與加密演算法不同,這乙個hash演算法是乙個不可逆的單向函式。採用安全性高的hash演算法,如md5、sha時,兩個不同的檔案幾乎不可能得到相同的hash結果。因此,一旦檔案被修改,就可檢測出來。

那麼什麼是userhash呢?

道理同上,當我們在第一次使用emule的時候,emule會自動生成乙個值,這個值也是唯一的,它是我們在emule世界裡面的標誌,只要你不解除安裝,不刪除config,你的userhash值也就永遠不變,積分制度就是通過這個值在起作用,emule裡面的積分儲存,身份識別,都是使用這個值,而和你的id和你的使用者名稱無關,你隨便怎麼改這些東西,你的userhash值都是不變的,這也充分保證了公平性。其實他也是乙個資訊摘要,只不過儲存的不是檔案資訊,而是我們每個人的資訊。

那麼什麼是hash檔案呢?

什麼是Hash演算法

hash 雜湊 本意是混雜 拼湊 重新表述。hash演算法又叫雜湊演算法 雜湊函式。它是一種單向密碼體制,即乙個從明文到密文的不可逆的對映,只有加密過程,沒有解密過程。同時hash函式可以將任意長度的輸入得到固定長度的輸出。hash函式這種單向特徵和固定輸出資料長度的特徵使它可以生成訊息或者資料。h...

秒懂Hash演算法(一) 什麼是Hash

hash函式 在一般的線性表 樹結構中,資料的儲存位置是隨機的,不像陣列可以通過索引能一步查詢到目標元素。為了能快速地在沒有索引之類的結構中找到目標元素,需要為儲存位址和值之間做一種對映關係h key 這個h就是雜湊函式,用公式表示 h key addr h 雜湊函式 key 關鍵字,用來唯一區分物...

到底什麼是hash?它起什麼作用?

從emule誕生到現在也已經有了兩年左右時間了,隨著emule的普及,喜歡他的人也越來越多,但是由於emule對技術相應有乙個門檻,不像bt那麼容易上手,所以很多朋友很長時間以來一直都有這樣或那樣的疑問,今天是週末我也獻獻醜,寫一篇關於hash的文章。大家天天都在使用emule,hash這個詞是在e...