hash(哈希)算法

本文出處轉(zhuǎn)自https://www.sohu.com/a/232586831_100078137https://www.cnblogs.com/mengfanrong/p/4034950.html

哈希是一種加密算法

哈希函數(shù)(Hash Function),也稱為散列函數(shù)或雜湊函數(shù)育瓜。哈希函數(shù)是一個(gè)公開(kāi)函數(shù),可以將任意長(zhǎng)度的消息M映射成為一個(gè)長(zhǎng)度較短且長(zhǎng)度固定的值H(M)咳燕,稱H(M)為哈希值也祠、散列值(Hash Value)插龄、雜湊值或者消息摘要(Message Digest)愿棋。它是一種單向密碼體制,即一個(gè)從明文到密文的不可逆映射均牢,只有加密過(guò)程糠雨,沒(méi)有解密過(guò)程。

散列表,它是基于高速存取的角度設(shè)計(jì)的徘跪,也是一種典型的“空間換時(shí)間”的做法甘邀。顧名思義,該數(shù)據(jù)結(jié)構(gòu)能夠理解為一個(gè)線性表垮庐,可是當(dāng)中的元素不是緊密排列的松邪,而是可能存在空隙。

散列表(Hash table哨查,也叫哈希表)逗抑,是依據(jù)關(guān)鍵碼值(Key value)而直接進(jìn)行訪問(wèn)的數(shù)據(jù)結(jié)構(gòu)。也就是說(shuō),它通過(guò)把關(guān)鍵碼值映射到表中一個(gè)位置來(lái)訪問(wèn)記錄邮府,以加快查找的速度荧关。這個(gè)映射函數(shù)叫做散列函數(shù),存放記錄的數(shù)組叫做散列表褂傀。

它的函數(shù)表達(dá)式為:h=H(m)

無(wú)論輸入是什么數(shù)字格式忍啤、文件有多大,輸出都是固定長(zhǎng)度的比特串紊服。以比特幣使用的Sh256算法為例檀轨,無(wú)論輸入是什么數(shù)據(jù)文件胸竞,輸出就是256bit欺嗤。

每個(gè)bit就是一位0或者1,256bit就是256個(gè)0或者1二進(jìn)制數(shù)字串卫枝,用16進(jìn)制數(shù)字表示的話煎饼,就是多少位呢?

16等于2的4次方校赤,所以每一位16進(jìn)制數(shù)字可以代表4位bit吆玖。那么,256位bit用16進(jìn)制數(shù)字表示马篮,當(dāng)然是256除以4等于64位沾乘。

Hash函數(shù)具有如下特點(diǎn)。

1浑测、易壓縮:對(duì)于任意大小的輸入x翅阵,Hash值的長(zhǎng)度很小,在實(shí)際應(yīng)用中迁央,函數(shù)H產(chǎn)生的Hash值其長(zhǎng)度是固定的掷匠。

2、易計(jì)算:對(duì)于任意給定的消息岖圈,計(jì)算其Hash值比較容易讹语。

3、單向性:對(duì)于給定的Hash值蜂科,要找到使得在計(jì)算上是不可行的顽决,即求Hash的逆很困難。在給定某個(gè)哈希函數(shù)H和哈希值H(M)的情況下导匣,得出M在計(jì)算上是不可行的擎值。即從哈希輸出無(wú)法倒推輸入的原始數(shù)值。這是哈希函數(shù)安全性的基礎(chǔ)逐抑。

4鸠儿、抗碰撞性:理想的Hash函數(shù)是無(wú)碰撞的,但在實(shí)際算法的設(shè)計(jì)中很難做到這一點(diǎn)。

有兩種抗碰撞性:一種是弱抗碰撞性进每,即對(duì)于給定的消息汹粤,要發(fā)現(xiàn)另一個(gè)消息,滿足在計(jì)算上是不可行的田晚;另一種是強(qiáng)抗碰撞性嘱兼,即對(duì)于任意一對(duì)不同的消息,使得在計(jì)算上也是不可行的贤徒。

5芹壕、高靈敏性:這是從比特位角度出發(fā)的,指的是1比特位的輸入變化會(huì)造成1/2的比特位發(fā)生變化接奈。消息M的任何改變都會(huì)導(dǎo)致哈希值H(M)發(fā)生改變踢涌。即如果輸入有微小不同,哈希運(yùn)算后的輸出一定不同序宦。

Hash算法在信息安全方面的應(yīng)用主要體如今下面的3個(gè)方面:

(1) 文件校驗(yàn)
  我們比較熟悉的校驗(yàn)算法有奇偶校驗(yàn)和CRC校驗(yàn)睁壁,這2種校驗(yàn)并沒(méi)有抗數(shù)據(jù)篡改的能力,它們一定程度上能檢測(cè)并糾正傳輸數(shù)據(jù)中的信道誤碼互捌,但卻不能防止對(duì)數(shù)據(jù)的惡意破壞潘明。

MD5 Hash算法的"數(shù)字指紋"特性,使它成為眼下應(yīng)用最廣泛的一種文件完整性校驗(yàn)和(Checksum)算法秕噪,不少Unix系統(tǒng)有提供計(jì)算md5 checksum的命令钳降。

(2) 數(shù)字簽名
  Hash 算法也是現(xiàn)代password體系中的一個(gè)重要組成部分。因?yàn)榉菍?duì)稱算法的運(yùn)算速度較慢腌巾,所以在數(shù)字簽名協(xié)議中遂填,單向散列函數(shù)扮演了一個(gè)重要的角色。 對(duì) Hash 值壤躲,又稱"數(shù)字摘要"進(jìn)行數(shù)字簽名城菊,在統(tǒng)計(jì)上能夠覺(jué)得與對(duì)文件本身進(jìn)行數(shù)字簽名是等效的。并且這種協(xié)議還有其它的長(zhǎng)處碉克。

(3) 鑒權(quán)協(xié)議
  例如以下的鑒權(quán)協(xié)議又被稱作挑戰(zhàn)--認(rèn)證模式:在傳輸信道是可被偵聽(tīng)凌唬,但不可被篡改的情況下,這是一種簡(jiǎn)單而安全的方法漏麦。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末客税,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子撕贞,更是在濱河造成了極大的恐慌更耻,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,000評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件捏膨,死亡現(xiàn)場(chǎng)離奇詭異秧均,居然都是意外死亡食侮,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,745評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門(mén)目胡,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)锯七,“玉大人,你說(shuō)我怎么就攤上這事誉己∶际” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 168,561評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵巨双,是天一觀的道長(zhǎng)噪猾。 經(jīng)常有香客問(wèn)我,道長(zhǎng)筑累,這世上最難降的妖魔是什么袱蜡? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 59,782評(píng)論 1 298
  • 正文 為了忘掉前任,我火速辦了婚禮疼阔,結(jié)果婚禮上戒劫,老公的妹妹穿的比我還像新娘半夷。我一直安慰自己婆廊,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,798評(píng)論 6 397
  • 文/花漫 我一把揭開(kāi)白布巫橄。 她就那樣靜靜地躺著淘邻,像睡著了一般。 火紅的嫁衣襯著肌膚如雪湘换。 梳的紋絲不亂的頭發(fā)上宾舅,一...
    開(kāi)封第一講書(shū)人閱讀 52,394評(píng)論 1 310
  • 那天,我揣著相機(jī)與錄音彩倚,去河邊找鬼筹我。 笑死,一個(gè)胖子當(dāng)著我的面吹牛帆离,可吹牛的內(nèi)容都是我干的蔬蕊。 我是一名探鬼主播,決...
    沈念sama閱讀 40,952評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼哥谷,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼岸夯!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起们妥,我...
    開(kāi)封第一講書(shū)人閱讀 39,852評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤猜扮,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后监婶,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體旅赢,經(jīng)...
    沈念sama閱讀 46,409評(píng)論 1 318
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡齿桃,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,483評(píng)論 3 341
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了煮盼。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片源譬。...
    茶點(diǎn)故事閱讀 40,615評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖孕似,靈堂內(nèi)的尸體忽然破棺而出踩娘,到底是詐尸還是另有隱情,我是刑警寧澤喉祭,帶...
    沈念sama閱讀 36,303評(píng)論 5 350
  • 正文 年R本政府宣布养渴,位于F島的核電站,受9級(jí)特大地震影響泛烙,放射性物質(zhì)發(fā)生泄漏理卑。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,979評(píng)論 3 334
  • 文/蒙蒙 一蔽氨、第九天 我趴在偏房一處隱蔽的房頂上張望藐唠。 院中可真熱鬧,春花似錦鹉究、人聲如沸宇立。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,470評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)妈嘹。三九已至,卻和暖如春绍妨,著一層夾襖步出監(jiān)牢的瞬間润脸,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,571評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工他去, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留毙驯,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 49,041評(píng)論 3 377
  • 正文 我出身青樓灾测,卻偏偏與公主長(zhǎng)得像爆价,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子行施,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,630評(píng)論 2 359

推薦閱讀更多精彩內(nèi)容