一文通俗解釋什么是哈希算法!什么是哈希算法?
在了解比特幣投資和區(qū)塊鏈技術(shù)中,哈希算法可以說經(jīng)常出現(xiàn),幣圈戲言說唱有嘻哈,算法有哈希。關(guān)于“算法”一詞,目前國內(nèi)用戶使用的比較模糊,有時(shí)指共識機(jī)制,有時(shí)指具體的Hash算法,作為區(qū)塊鏈算法,哈希算法一直讓普通大眾感到晦澀難懂,那么,什么是哈希算法?接下來幣圈子小編就來給大家通俗的講解一下哈希算法是什么?希望能夠讓投資者看完本文就能讀懂哈希算法。
什么是哈希算法?
哈希音譯自“Hash”,又名為“散列”。本質(zhì)上是一種計(jì)算機(jī)程序,可接收任意長度的信心輸入,然后通過哈希算法,創(chuàng)建小的數(shù)字“指紋”的方式。例如數(shù)字與字母的結(jié)合,輸出的就為“哈希值”。從數(shù)學(xué)術(shù)語上說,就是這個(gè)哈希函數(shù),是將任意長度的數(shù)據(jù),映射在有限長度的域上??傮w而言,哈希函數(shù)用于,將消息或數(shù)據(jù)壓縮,生成數(shù)據(jù)摘要,最終使數(shù)據(jù)量變小,并擁有固定格式。
哈希算法的特點(diǎn)
1.易壓縮:對于任意大小的輸入x,Hash值的長度很小,在實(shí)際應(yīng)用中,函數(shù)H產(chǎn)生的Hash值其長度是固定的。
2.易計(jì)算:對于任意給定的消息,計(jì)算其Hash值比較容易。
3.單向性:對于給定的Hash值,要找到使得在計(jì)算上是不可行的,即求Hash的逆很困難。在給定某個(gè)哈希函數(shù)H和哈希值H(M)的情況下,得出M在計(jì)算上是不可行的。即從哈希輸出無法倒推輸入的原始數(shù)值。這是哈希函數(shù)安全性的基礎(chǔ)。
4.抗碰撞性:理想的Hash函數(shù)是無碰撞的,但在實(shí)際算法的設(shè)計(jì)中很難做到這一點(diǎn)。
有兩種抗碰撞性:一種是弱抗碰撞性,即對于給定的消息,要發(fā)現(xiàn)另一個(gè)消息,滿足在計(jì)算上是不可行的;另一種是強(qiáng)抗碰撞性,即對于任意一對不同的消息,使得在計(jì)算上也是不可行的。
5.高靈敏性:這是從比特位角度出發(fā)的,指的是1比特位的輸入變化會造成1/2的比特位發(fā)生變化。消息M的任何改變都會導(dǎo)致哈希值H(M)發(fā)生改變。即如果輸入有微小不同,哈希運(yùn)算后的輸出一定不同。
哈希算法的用途:
哈希算法可以檢驗(yàn)信息是否是相同的,這樣的優(yōu)勢可以節(jié)省重復(fù)文件傳送的時(shí)間。
舉一個(gè)生活中很平常的例子,我們在生活工作中會使用一些軟件給別人傳送文件數(shù)據(jù),如果有人傳送了一份文件給一個(gè)人,然后又有一個(gè)人傳送了相同的文件給了另外一個(gè)人,那么這個(gè)社交軟件在第二次傳送文件的時(shí)候會對比兩次傳送的哈希值,發(fā)現(xiàn)是相同的,該軟件就不會再次上傳文件給服務(wù)器了。
除此之外,哈希算法還可以檢驗(yàn)信息的擁有者是否真實(shí)。
比如,我們在一個(gè)網(wǎng)站注冊一個(gè)賬號,如果網(wǎng)站把密碼保存起來,那這個(gè)網(wǎng)站不論有多安全,也會有被盜取的風(fēng)險(xiǎn)。但是如果用保存密碼的哈希值代替保存密碼,就沒有這個(gè)風(fēng)險(xiǎn)了,因?yàn)楣V导用苓^程是不不可逆的。
以上就是一文通俗解釋什么是哈希算法!什么是哈希算法?的詳細(xì)內(nèi)容,更多關(guān)于哈希算法的特點(diǎn)的資料請關(guān)注腳本之家其它相關(guān)文章!