古詩詞大全網 - 藝術簽名 - 為什麽哈希加密無法破解?

為什麽哈希加密無法破解?

Hash簡單來說就是通過某種算法從任何壹段數據中生成壹個唯壹的定長數據。也叫抽象。為了確保數據A不被意外或故意(惡意)修改,這段數據A通常被用來生成散列數據,該散列數據被壹起發送和接收。

Hash,壹般翻譯為“hash”或直接音譯為“hash”,是通過哈希算法將任意長度的輸入(也稱前像)轉換為固定長度的輸出,輸出為哈希值。這種轉換是壹種壓縮映射,即哈希值的空間通常比輸入的空間小得多,不同的輸入可能被哈希成同壹個輸出,所以不可能從哈希值唯壹確定輸入值。

簡單地說,它是將任意長度的消息壓縮成固定長度的消息摘要的功能。

哈希算法主要用於信息安全領域的加密算法。它把壹些長短不壹的信息轉換成128位的亂碼,稱為哈希值。換句話說,哈希就是要找到數據內容和數據存儲地址之間的映射關系。

知道了哈希的基本定義,就不能不提到壹些著名的哈希算法。MD5和SHA1可以說是目前應用最廣泛的哈希算法,都是基於MD4設計的。那麽它們都是什麽意思呢?

這裏有壹個簡短的聲明:

1) MD4

MD4(RFC 1320)是麻省理工學院的羅納德·L·李維斯特在1990年設計的,MD是報文摘要的縮寫。它適用於字長為32位的處理器上的高速軟件實現——它是基於32位操作數的位操作來實現的。

2) MD5

MD5(RFC 1321)是Rivest在1991中制作的MD4的改進版本。它的輸入仍按512位分組,輸出是4個32位字的級聯,與MD4相同。MD5比MD4更復雜,速度更慢,但更安全,在反分析和反差異方面表現更好。

3) SHA1等

SHA1由NIST NSA設計,用於DSA。它為長度小於264的輸入生成長度為160bit的哈希值,因此更能抵抗暴力破解。SHA-1基於與MD4相同的原理設計,並模仿算法。

那麽這些哈希算法有什麽用呢?

哈希算法在信息安全中的應用主要體現在以下三個方面:

1)文件驗證

我們熟悉奇偶校驗和CRC校驗。這兩種檢查都沒有抵抗數據篡改的能力。它們可以在壹定程度上檢測和糾正數據傳輸中的信道錯誤,但不能防止對數據的惡意破壞。

md5哈希算法的“數字指紋”特性使其成為目前應用最廣泛的文件完整性校驗和算法,許多Unix系統都提供了計算MD5校驗和的命令。

2)數字簽名

哈希算法也是現代密碼學的重要組成部分。由於非對稱算法運算速度慢,單向哈希函數在數字簽名協議中占有重要地位。對哈希值進行數字簽名,也稱為“數字摘要”,可以被認為等同於對文件本身進行數字簽名。這樣的協議還有其他好處。

3)認證協議

下面的認證協議也被稱為“挑戰認證模式”:當傳輸信道可以被截獲但不能被篡改時,這是壹種簡單而安全的方法。

以上是關於hash及其相關的壹些基礎預備知識。那麽他在電驢到底是做什麽的呢?

文件的哈希值是什麽?

眾所周知,emule基於P2P(Peer-to-Peer的簡稱,指的是點對點軟件),它采用MFTP(多源文件傳輸協議)。在協議中,定義了壹系列傳輸、壓縮、打包和集成標準。emule對每個文件都有md5-hash的算法設置,使得文件在整個網絡上具有唯壹性和可追溯性。

MD5哈希文件的數字摘要由哈希函數計算。無論文件長度如何,其哈希函數計算結果都是壹個定長數。與加密算法不同,這種哈希算法是壹種不可逆的單向函數。當使用高安全性散列算法(如MD5和SHA)時,兩個不同的文件幾乎不可能得到相同的散列結果。因此,壹旦文件被修改,就可以被檢測到。

當我們的文件在emule中發布時,emule會根據哈希算法自動生成這個文件的哈希值,這個哈希值是這個文件唯壹的身份標識,它包含了這個文件的基本信息,然後提交給連接的服務器。當有人想下載這個文件的時候,這個哈希值可以讓別人知道他正在下載的文件是不是他想要的。該值在文件的其他屬性(如名稱等)之後尤為重要。)都被改了。而且服務器還提供了這個文件當前所在用戶的地址和端口,這樣emule就知道去哪裏下載了。

壹般來說,我們要搜索壹個文件。獲得這些信息後,emule將向添加的服務器發送壹個具有相同哈希值的文件請求。服務器返回擁有該文件的用戶的信息。通過這種方式,我們的客戶端可以直接與擁有該文件的用戶通信,看我們是否可以從他那裏下載所需的文件。

文件在emule中的哈希值是固定且唯壹的,相當於這個文件的信息匯總。不管文件在誰的機器上,它的哈希值都是常量,不管花多長時間,這個值都是壹致的。當我們下載和上傳文件時,emule使用這個值來確定文件。

那麽什麽是userhash呢?

原因同上。當我們第壹次使用emule時,emule會自動生成壹個值,這個值也是唯壹的。這是我們在電驢世界的標誌。只要妳不卸載或刪除config,妳的userhash值永遠不會改變。積分系統通過這個值工作。emule裏的積分保存和識別都是用這個值,跟妳的id和妳的用戶名無關。其實他也是壹個信息匯總,但不是檔案信息,而是我們每個人的信息。

那麽什麽是散列文件呢?

我們在emule中經常看到emule在哈希文件。下面是哈希算法的文件驗證功能。文章中已經提到了其中的壹些功能。其實這部分是壹個很復雜的過程。目前在ftp、bt等軟件中使用的都是這個基本原理。在emule中,文件是分塊傳輸的,所以每個傳輸的塊都要進行比較和驗證。如果有錯誤,將重新下載。在此期間,相關信息將被寫入met文件,直到整個任務完成。此時,零件文件將被重命名,然後使用move命令將其轉移到傳入文件中,然後met文件將被自動刪除。所以有時候我們會遇到hash文件的失敗,說明met中的信息有錯誤,無法與part文件匹配。另外,有時候開手機也要來個瘋狂哈希。有兩種情況:壹種是妳第壹次使用的時候,這個時候妳需要有壹個hash來提取所有的文件信息,另壹種是妳上次非法關閉的時候,這個時候需要檢查調試。