什么是哈希算法?競(jìng)猜游戲開(kāi)發(fā)技術(shù)詳解
?什么是哈希算法?
哈希算法的基本含義
哈希是密碼學(xué)的基礎(chǔ),理解哈希是理解數(shù)字簽名和加密通信等技術(shù)的必要前提。
哈希,英文是 hash ,本來(lái)意思是”切碎并攪拌,有一種食物就叫 Hash ,就是把食材切碎并攪拌一下做成的。哈希函數(shù)的運(yùn)算結(jié)果就是哈希值,通常簡(jiǎn)稱為哈希。哈希函數(shù)有時(shí)候也翻譯做散列函數(shù)。
哈希競(jìng)猜游戲開(kāi)發(fā),NFT哈希生態(tài)系統(tǒng)定制,模式開(kāi)發(fā),歡迎隨時(shí)打擾小編

根據(jù)維基百科的定義,哈希函數(shù)要做的事情是給一個(gè)任意大小的數(shù)據(jù)生成出一個(gè)固定長(zhǎng)度的數(shù)據(jù),作為它的映射。所謂映射就是一一對(duì)應(yīng)。一個(gè)可靠的哈希算法要滿足三點(diǎn)。
第一是安全,給定數(shù)據(jù) M 容易算出哈希值 X ,而給定 X 不能算出 M ,或者說(shuō)哈希算法應(yīng)該是一個(gè)單向算法。第二是獨(dú)一無(wú)二,兩個(gè)不同的數(shù)據(jù),要擁有不相同的哈希。第三是長(zhǎng)度固定,給定一種哈希算法,不管輸入是多大的數(shù)據(jù),輸出長(zhǎng)度都是固定的。
但是仔細(xì)想一下,如果哈希的長(zhǎng)度是固定的,也就是取值范圍是有限的,而輸入數(shù)據(jù)的取值范圍是無(wú)限的,所以總會(huì)找到兩個(gè)不同的輸入擁有相同的哈希。所以,哈希函數(shù)的安全性肯定是個(gè)相對(duì)概念。如果出現(xiàn)了兩個(gè)不同輸入有相同輸出的情況,就叫碰撞,collision 。不同的哈希算法,哈希位數(shù)越多,也就基本意味著安全級(jí)別越高,或者說(shuō)它的”抗碰撞性就越好。

再來(lái)說(shuō)說(shuō)哈希函數(shù)的主要作用。哈希的獨(dú)一無(wú)二性,保證了如果數(shù)據(jù)在存儲(chǔ)或者傳輸過(guò)程中有絲毫損壞,那么它的哈希就會(huì)變。哈希函數(shù)的最常見(jiàn)的一個(gè)作用就是進(jìn)行完整性校驗(yàn)( Integrity Check ),完整的意思是數(shù)據(jù)無(wú)損壞。哈希有很多不同的稱呼,有時(shí)候叫 Digest 摘要,有時(shí)候叫 Checksum 校驗(yàn)值,有時(shí)候叫 Fingerprint 指紋,其實(shí)說(shuō)的意思差不多,也就是說(shuō)哈??梢杂脕?lái)代表數(shù)據(jù)本身。
例如朋友給我傳遞一份數(shù)據(jù),傳完之后,我有一份,他手里也有一份,如果兩份數(shù)據(jù)的哈希值是一樣的,那么這兩份數(shù)據(jù)的內(nèi)容就是一樣的,或者說(shuō)可以認(rèn)為傳遞過(guò)程中數(shù)據(jù)沒(méi)有損壞,我手里拿到的數(shù)據(jù)是完整的。
所以說(shuō),哈希函數(shù)的基本作用就是給大數(shù)據(jù)算出一個(gè)摘要性的長(zhǎng)度固定的字符串,也就是所謂的哈希。哈希的作用主要是進(jìn)行完整性校驗(yàn)。
?
掃描二維碼推送至手機(jī)訪問(wèn)。
版權(quán)聲明:本文由財(cái)神資訊-領(lǐng)先的體育資訊互動(dòng)媒體轉(zhuǎn)載發(fā)布,如需刪除請(qǐng)聯(lián)系。