區塊鏈核心知識丨Hash算法原理

2020-12-16 區鏈數科

關注「區鏈數科」,讓你從入門到精通區塊鏈!

上一篇文章我們講解了「要了解區塊鏈一定要清楚區塊鏈技術的幾點技術原理!」

今天我們來講解區塊鏈中「Hash算法」的基本原理。

Hash--百科

哈希算法將任意長度的二進位值映射為較短的固定長度的二進位值,這個小的二進位值稱為哈希值。

哈希值是一段數據唯一且極其緊湊的數值表示形式。如果散列一段明文而且哪怕只更改該段落的一個字母,隨後的哈希都將產生不同的值。要找到散列為同一個值的兩個不同的輸入,在計算上是不可能的,所以數據的哈希值可以檢驗數據的完整性。一般用於快速查找和加密算法。

簡單解釋:哈希(Hash)算法,即散列函數。它是一種單向密碼體制,即它是一個從明文到密文的不可逆的映射,只有加密過程,沒有解密過程。同時,哈希函數可以將任意長度的輸入經過變化以後得到固定長度的輸出。哈希函數的這種單向特徵和輸出數據長度固定的特徵使得它可以生成消息或者數據。

Hash算法具有的技術特徵:

1、單項不可逆

只能單項從數據內容本身快速計算出對應的Hash值,反之無法從Hash值推算出數據內容本身。

2、唯一性

不同的數據具有不同的Hash值。很難找到兩個Hash值一致,但數據本身不一致的數據。

3、不可預測性

數據內容對應的Hash值完全隨機,輕微的內容變化都會導致Hash值的完全不一致。

Hash原理

Hash算法是摘要算法的一種。

摘要算法的原理,即世界上沒有一片完全一樣的葉子,每一個事物都有自己獨一無二的特徵,我們提取某片葉子中獨一無二的特徵就是摘要。

按照這樣的原理,我們每個人也是一樣獨一無二的,也有自己的特點,那麼我們如何對人進行摘要呢?比如我們在籤合同的時候,只要留下雙方的指紋即可。這裡的指紋就是我們每個人身上獨有的特徵。

那麼,Hash算法中優勢如何提取的呢?

常見的Hash算法有:md5、sha1、sha256、sha512等,都是摘要算法(Message Digest)。

Hash算法就是可以將任意數據生成固定長度的16進位字符串。這裡的數據可以是文本、圖片、視頻等。

下面給大家進行演示一下:

1、進入下面工具頁面,按步驟操作。

2、輸入信息,點擊SHA1進行Hash加密,得到Hash值。

輸入的信息可以是任意的,經過加Hash加密計算後得到的是固定長度的16進位的字符串。

Hash算法的特點

1、只要數據一樣,那麼不管計算多少次都會獲得同一個字符串;

在工具內嘗試即可。

2、輸入的信息(明文)只要稍微改變,加密後的結果就會完全不一樣;

從下面的兩幅圖,對比就可以看出了。

3、過程不可逆,無法從加密後的字符串(密文)推推導出你輸入的信息(明文)。

比如,我們可以通過一個人得到一個人的指紋,但是這個過程是不可逆的,因為我們沒法從一個人的指紋推導出一個活生生的人。

因為這樣的特點,即使你得到了加密後的Hash值,也無法知道加密前的信息是什麼。

我們所有的密碼保存的都不是你要加密的信息(明文),而是加密後的字符串(密文),任何的Hash算法都是一樣原理。

這也很好的解釋了我們在忘記了某個平臺的登陸密碼後,在找回密碼時只能重新設置密碼而找不到你忘記的密碼,銀行卡忘記密碼也是如此。

這就是所有Hash算法的原理,如果你還有興趣,可以利用工具試試不同的Hash算法(md5、sha1、sha256、sha512等),看看後面得到Hash值有什麼不同,又有什麼特點呢?歡迎留言交流。

#區塊鏈#

關注「區鏈數科」,讓你從入門到精通區塊鏈!

相關焦點

  • 簡說區塊鏈 | 什麼是Hash算法?
    它能任意長度的二進位值(明文)映射為較短的固定長度的二進位值(hash 值),並且不同的明文很難映射為相同的Hash值。例如計算一段話「hello blockchain world, this is yeasy@github」的 md5 hash 值為:89242549883a2ef85dc81b90fb606046 。
  • 重學算法:Hash 算法原理及應用漫談
    點擊藍色「五分鐘學算法」關注我喲加個「星標」,天天中午 12:15,一起學算法本文作者:jeffhe,騰訊 IEG 開發工程師提到hash,相信大多數同學都不會陌生,之前很火現在也依舊很火的技術區塊鏈背後的底層原理之一就是hash,下面就從hash算法的原理和實際應用等幾個角度,對hash算法進行一個講解。
  • 區塊鏈中的數學(四十一)
    區塊鏈中,大部分的共識算法,無論是 POW、POS,或是由他們衍生出來的 DPOS,都需要選出一堆或者一個節點來參與共識或者打包區塊,這個過程雖然會有持幣情況、設備配置、信譽等各種因素影響,但必須是隨機的、無法被預測的。這時候就可能會用到隨機算法。
  • 區塊鏈加密機制的不同算法及其原理解析
    談到不同的共識機制,就有很多話題可以說了,甚至可以說區塊鏈的發展就一直伴隨著共識機制以及算法的改進,那我們就來介紹一下不同的共識機制、算法及其原理:其實關於共識機制和算法,現在經常被混於一談,但是要分辨開來的話,那就是機制主要是指POW,POS與DPOS,算法則主要指的是POW下的各種算法。
  • 低調入局,華為的區塊鏈不止BCS丨區塊鏈企業案例研究
    華為雲區塊鏈服務BCS是基於開源區塊鏈技術和分布式並行計算、數據管理、安全加密等核心技術開發的面向企業及開發者的區塊鏈技術平臺服務,幫助企業在華為雲上快速部署、管理、維護區塊鏈網絡,降低使用區塊鏈的門檻,實現業務快速上鏈。
  • Comunion 區塊鏈深度學習系列|哈希算法的應用
    本系列內容包含:基本概念及原理、密碼學、共識算法、錢包及節點原理、挖礦原理及實現。挖礦以比特幣網絡為例,比特幣挖礦主要使用到的算法是SHA-256,其具體流程參見下圖。
  • 區塊鏈記帳原理
    區塊鏈(1.0)是一個基於密碼學安全的分布式帳本,是一個方便驗證,不可篡改的帳本。 通常認為與智能合約相結合的區塊鏈為區塊鏈2.0, 如以太坊是典型的區塊鏈2.0 很多人只了解過比特幣,不知道區塊鏈,比特幣實際是一個使用了區塊鏈技術的應用,只是比特幣當前太熱,把區塊鏈技術的光芒給掩蓋了。區塊鏈才是未來,期望各位開發人員少關心幣價,多關心技術。
  • 六層神功, 精煉區塊鏈
    自從比特幣誕生以來, 有很多技術的科普文章, 甚至是制精良的動畫, 來解釋其中的原理. 其中不乏精品之作.在區塊鏈的世界, 閱讀理論的作用是有限的. 離開實踐, 力有不逮, 心有餘而力不逮, 是很常見的. 從白皮書到代碼實現是一個飛躍, 需要一些耐心和技術儲備.
  • 如何用Python快速實現區塊鏈?
    【編者按】區塊鏈自誕生那天起就是網際網路業界最富有爭議與分歧的技術之一。它是比特幣和其他加密貨幣幕後的核心技術,最近幾年來引起了廣泛的關注。區塊鏈的核心是分布式資料庫,任何兩方之間可以進行直接交易,而無需經過權威的中間機構。這個簡單而又強大的概念對銀行、政府以及市場等各種機構帶來了很大影響。任何以中心化資料庫作為核心競爭優勢的商家或組織都有可能受到來自區塊鏈技術的威脅。
  • 區塊鏈原理最清晰最直觀的解釋
    維基百科上對區塊鏈的描述:維護不斷增長的記錄(稱作區塊)的分布式資料庫。聽上去很簡單,但到底是怎麼回事呢?我們用一款開源命令行界面 Blockchain CLI 來詳細說明區塊鏈。我也做了一個瀏覽器可以訪問的在線版。
  • 《區塊鏈常用術語解釋》匯總,中英對照表
    block chain apps區塊鏈應用block generation rate出塊速度block hash區塊散列值block header hash區塊頭散列值block headers區塊頭block height區塊高度blockmeta區塊元block templates區塊模板blockchains區塊鏈bloom filtersand布魯姆過濾器(bloom過濾器)
  • 常見 Hash 算法的原理
    了解了hash基本定義,就不能不提到一些著名的hash算法,MD5 和 SHA-1 能夠說是眼下應用最廣泛的Hash算法,而它們都是以 MD4 為基礎設計的。那麼他們都是什麼意思呢?這裡簡單說一下:(1) MD4MD4(RFC 1320)是 MIT 的 Ronald L.
  • 區塊鏈丨對稱加密算法
    關注「區鏈數科」,讓你從入門到精通區塊鏈!在前面的文章中,有提到「對稱加密算法」,這是一種相對應用得比較早的加密算法之一,其技術也是比較成熟的。另外,每次使用該加密算法時,用戶都需要使用其他人所不知道的唯一密鑰,那麼如何管理那些曾經使用過的密鑰將至關重要,因為隨著密鑰數量的增加,必然會導致存儲上的負擔相應的增加。在區塊鏈中,對稱加密算法主要有兩種形式:分組加密和序列加密。
  • 區塊鏈共識算法的比較:Casper vs Tendermint
    所以,故障容錯算法得到普及,例如1998年發明的Paxos算法和2013年發明的Raft算法被廣泛的應用。而1999年發明的實用拜佔庭容錯(PBFT)卻沒有被學術界之外採用。直到2008年,中本聰將網絡規模級別的分布式拜佔庭容錯(BFT)算法設計到區塊鏈方案中,才使拜佔庭容錯得到推廣。
  • 智能製造中區塊鏈技術的應用案例解析
    比特幣是一種去中心化的點對點的網絡,為解決一幣多付的問題,中本聰提出了區塊鏈的概念,顧名思義,區塊鏈由區塊組成,區塊是一種數據結構,包括時間戳,交易記錄,前一個區塊的哈希值,通過這種機制,所有的區塊連在一起,形成區塊鏈。
  • 什麼是區塊鏈共識算法?
    區塊鏈系統的本質就是一個分布式應用軟體。分布式系統的首要問題就是如何解決一致性的問題,也就是如何在多個獨立的節點之間達成共識。在有錯誤的進程存在並且有可能出現網絡分區的情況下,FLP 定理徹底關閉了在傳統計算機算法體系下提出解決方案的大門。
  • 成都信息工程大學的區塊鏈工程成全國首個區塊鏈工程本科專業
    「區塊鏈工程」專業相關負責人在接受科技日報記者採訪時表示,該專業旨在培養掌握計算機科學與技術基礎知識、區塊鏈技術基本理論和區塊鏈項目開發方法,具有區塊鏈系統設計與實現能力、區塊鏈項目管理與實施能力和在實際應用環境下構思、設計、實施、運行系統的能力,未來能在區塊鏈項目系統設計開發、區塊鏈項目管理、區塊鏈系統服務等領域發揮創新紐帶作用的應用型高級專門人才
  • 淺談區塊鏈主流的共識算法
    淺談區塊鏈主流的共識算法 盛合區塊鏈 發表於 2020-02-04 14:36:24 在每種偉大的加密貨幣背後,都有著一個偉大的共識算法。
  • 瘋狂「搬運」幣的黑客如何攻擊區塊鏈|乾貨(一)
    其中,數據層封裝了底層數據塊區以及相關的數據加密和時間戳等技術;網絡層則包括分布式組網機制、數據傳播機制和數據驗證機制等;共識層主要封裝網絡節點和各類共識算法;激勵層將經濟因素集成到區塊鏈技術體系中來,主要包括經濟激勵的發行機制和分配機制等;合約層主要封裝各類腳本、算法和智能合約,是區塊鏈可編程特性的基礎;業務層則封裝了區塊鏈的各種應用場景和案例。
  • 追本溯源,回歸根本:第一屆區塊鏈技術及應用峰會(BTA)·中國「區塊...
    ,完美把握當下區塊鏈技術的發展脈搏,從核心技術背後所蘊含思維的全方位剖析,到經典案例的深度解密,為與會者呈現全方位多角度的立體知識體系結構,從根本上打通思維模式,創造更多可能。其中,「區塊鏈核心技術」論壇匯集國內頂級區塊鏈技術專家,詳解共識算法、底層協議、密碼學等角度,為大家開啟區塊鏈技術開發大門。共同探討如何利用去中心、防篡改的區塊鏈來保證價值在網際網路上的可靠傳遞與交換,以及區塊鏈包含哪些核心技術,作為技術人員如何選擇不同的技術流派,如何了解這些技術中的差異化和共性等問題。