在了解比特幣投資和區塊鏈技術中,哈希演算法可以說經常出現,幣圈戲言饒舌有嘻哈,演算法有哈希。關於「演算法」一詞,目前國內用戶使用的比較模糊,有時指共識機制,有時指具體的Hash演算法,作為區塊鏈演算法,哈希演算法一直讓一般大眾感到晦澀難懂,那麼,什麼是哈希算法?接下來幣圈子小編就來跟大家通俗的講解一下哈希演算法是什麼?希望能夠讓投資人看完這篇文章就能讀懂哈希演算法。
雜湊音譯自“Hash”,又稱為“雜湊”。本質上是一種計算機程序,可接收任意長度的信心輸入,然後通過哈希演算法,創建小的數字“指紋”的方式。例如數字與字母的結合,輸出的就為「哈希值」。從數學術語上說,就是這個雜湊函數,是將任意長度的數據,映射在有限長度的域上。總體而言,雜湊函數用於,將訊息或資料壓縮,產生資料摘要,最終使資料量變小,並擁有固定格式。
1.易壓縮:對於任意大小的輸入x,Hash值的長度很小,在實際應用中,函數H產生的Hash值其長度是固定的。
2.易計算:對於任意給定的訊息,計算其Hash值比較容易。
「3. 單向性是指對於特定的雜湊值,找到使其逆向計算變得困難的過程。換句話說,要從雜湊輸出中逆向推導出原始輸入是一項具有挑戰性的任務。單向性是確保雜湊函數安全性的基礎之一。對於給定的雜湊函數H和其雜湊值H(M),推斷M在計算上是不可行的。 ”
4.抗碰撞性:理想的Hash函數是無碰撞的,但在實際演算法的設計中很難做到這一點。
抗碰撞性分為兩種:一種是弱抗碰撞性,意味著在計算上無法找到另一則訊息,使得其Hash值與給定訊息相同;另一種是強抗碰撞性,即在計算上找到使得兩個不同訊息具有相同Hash值也是不可行的。
高靈敏度是從位元的角度來看的,即是指一個位元位元的變化會導致一半位元位元發生變化。這表示訊息M的任何輕微變化都會導致雜湊值H(M)發生變化,即使輸入只有微小的不同,雜湊運算後的輸出也會完全不同。這種特性確保了雜湊函數對輸入資料的細微變化都能夠敏感地作出回應,從而使得任何修改都會在雜湊值中準確體現。
雜湊演算法可以檢驗資訊是否是相同的,這樣的優勢可以節省重複檔案傳送的時間。
舉一個生活中很平常的例子,我們在生活工作中會使用一些軟體給別人傳送文件數據,如果有人傳送了一份文件給一個人,然後又有一個人傳送了相同的文件給了另外一個人,那麼這個社交軟體在第二次傳送文件的時候會對比兩次傳送的哈希值,發現是相同的,該軟體就不會再次上傳文件給伺服器了。
除此之外,雜湊演算法還可以檢驗資訊的擁有者是否真實。
例如,我們在一個網站註冊一個帳號,如果網站把密碼保存起來,那這個網站不論有多安全,也會有被盜取的風險。但是如果用保存密碼的雜湊值代替保存密碼,就沒有這個風險了,因為雜湊值加密過程是不不可逆的。
以上是一文通俗解釋什麼是哈希演算法!什麼是哈希演算法?的詳細內容。更多資訊請關注PHP中文網其他相關文章!