計算機程序設計

哈希函數是:它是什麼,為什麼會發生什麼

通常情況下,在描述下載種子或文件時,直接自己有類似«ad33e486d0578a892b8vbd8b19e28754»(例如,在ex.ua),經常用一記«MD5»。 該散列代碼 - 即處理輸入數據之後輸出的散列函數的結果。 在英語中,哈希表示困惑,大麻,雜草,或肉末和蔬菜的菜。 解密哈希是非常困難的,我們可以說,這幾乎是不可能的。 接下來的問題是:“為什麼我們需要所有這些 散列函數,如果 他們給一個難以理解的亂碼,這也不能破譯?”。 這將在本文中進行討論。

什麼是哈希函數,它是如何工作的?

該功能被設計為將進入的數據任意大的量轉換為固定長度的結果。 這樣的變換的非常過程稱為散列,並且將結果 - 散列或散列碼。 有時甚至用的是“指紋”或“消息摘要”,但在實踐中是非常罕見的。 有許多不同的算法如何在一定長度的符號的某些序列變換任何數據集。 最廣泛使用的算法稱為MD5,這是早在1991年開發的。 儘管到目前為止,MD5是有點過時,不推薦使用,但它仍然還在身邊,而不是經常上的網站“散列碼”簡單地寫MD5,並註明代碼本身。

為什麼我們需要一個散列函數?

知道了結果,實際上是不可能來確定原始數據,但同樣的輸入數據給出相同的結果。 因此,散列函數(也稱為卷積函數)經常被用來存儲非常敏感信息,如密碼,用戶名,身份證號等個人信息。 相反,比較由用戶輸入的信息,與存儲在數據庫中,有哈希值進行比較。 這確保了信息的意外洩露的情況下,沒有人可以採取的達到自己的目的的重要數據的優勢。 通過比較哈希碼也方便檢查從互聯網上下載文件的正確性,尤其是如果下載過程中發生通信中斷。

哈希:它們是什麼牛逼

根據您的目的地哈希函數可以是三種類型中的一種:

1.函數來檢查信息的完整性

當一個 數據傳輸 網絡,則該散列的分組的計算,該結果也與文件一起發送。 當接收到重新計算的散列碼和與由網絡獲得的值進行比較。 如果代碼不匹配,則表明一個錯誤,損壞的包將被再次轉移。 在這樣的計算功能快的速度,但少量的散列值和穩定性差的。 CRC32,它只有232不同的值:這種類型的一個例子。

2.加密功能

這種類型 是用來防止 未經授權的訪問 (ND)。 它們允許你進行檢查,看是否有數據損壞的文件在網絡傳輸過程中的LP的結果。 真散列是公開可用的,在這種情況下,如所接收的文件的散列可以使用多個不同的程序來計算。 這樣的特徵長壽命和穩定的操作,以及(來自不同的源的數據可能的匹配結果)尋找碰撞是非常複雜的。 這樣的功能被用於存儲在密碼數據庫(SH1,SH2,MD5)和其他有價值的信息。

3.功能被設計為創建一個有效的數據結構

它的目的是比較的特殊結構,這就是所謂的哈希表的信息,緊湊而有序的組織。 此表允許您以非常高的速度增加新的信息,刪除信息,並搜索所需的數據。

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

Copyright © 2018 zhtw.delachieve.com. Theme powered by WordPress.