哈希競(jìng)猜游戲哈希函數(shù)的應(yīng)用及分析
哈希函數(shù):數(shù)字摘要
我在minecraft學(xué)習(xí)了哈希函數(shù)和哈希值
數(shù)字摘要技術(shù)是一種使用哈希函數(shù),將任意長(zhǎng)度的數(shù)據(jù)轉(zhuǎn)換為特定長(zhǎng)度的數(shù)據(jù)的技術(shù)。(但它是一些非常簡(jiǎn)單的方法,例如劃分為小段并將它們相加,除以一個(gè)數(shù)字并取余數(shù))。請(qǐng)注意,哈希函數(shù)與其說(shuō)是一個(gè)函數(shù),不如說(shuō)是一個(gè)方法:它沒有特定的算法,只要它精確。最知名的算法是MD5和SHA-1

很容易看出哈希函數(shù)必須是壓縮映射。輸入空間比輸出空間大得余,值字段比定義字段大得余。
哈希函數(shù)的屬性:
1有所不同的輸入值可能會(huì)導(dǎo)致相同的輸出值(這不是絕對(duì),例如,線段之上的點(diǎn)數(shù)等于直線之上的點(diǎn)數(shù))
2。如果輸出值有所不同,則輸入值必須有所不同,但如果輸入值有所不同,則輸出值可能相同
3。哈希函數(shù)缺少逆向法則,輸入不能從輸出之中推斷出來(lái),因此它對(duì)數(shù)據(jù)本身具有很好的保密性
哈希函數(shù)的用途是什么?虛假設(shè)一堆數(shù)據(jù)保存在這里,我收到一些數(shù)據(jù),希望找出這些數(shù)據(jù)是否保存在這里,如果是,它們存在于哪里。唯一的方法是將接收到的數(shù)據(jù)與我保存的數(shù)據(jù)逐一進(jìn)行比較。效率極低
這是一開始設(shè)計(jì)哈希函數(shù)的目的。存儲(chǔ)記錄的內(nèi)容與記錄的位置無(wú)關(guān),因此必須逐一進(jìn)行比較。如果記錄的內(nèi)容與位置相關(guān),則可以間接查找其存儲(chǔ)地址,而需根據(jù)事先制作的表比較記錄的具體內(nèi)容
具體來(lái)說(shuō),表中有一個(gè)函數(shù),可以根據(jù)輸入的關(guān)鍵字獲取表之中包含關(guān)鍵性字的記錄的地址。此函數(shù)是哈希函數(shù),此表是哈希表,哈希函數(shù)獲得的值(地址)是哈希值(地址)。哈希函數(shù)旨在加快搜索速度,當(dāng)將可變長(zhǎng)度的數(shù)據(jù)更改為特定長(zhǎng)度的“摘要”時(shí),也可以使用它。此時(shí)的輸出哈希值稱為數(shù)據(jù)摘要
有所不同的輸入可以具有相同的輸出。這叫做碰撞。這應(yīng)該通過開放尋址或鏈尋址來(lái)解決。這里沒有詳盡記錄
散列可以理解為長(zhǎng)數(shù)據(jù)或大數(shù)據(jù)的指紋。我總結(jié)了三種使用哈希的方法:

首先,它可以加快早期數(shù)據(jù)的比較效率
并驗(yàn)證我們?cè)趨^(qū)塊鏈之中的狀態(tài)號(hào)的效率。例如,在以太坊帳戶之中,我們每個(gè)帳戶之中剩余的金額顯示在該帳戶之中。如果每個(gè)節(jié)點(diǎn)的結(jié)果都是相同的,那么要相同地比較它們是很困難的。如果我們通過生成一個(gè)哈希來(lái)比較它,那么驗(yàn)證
非常簡(jiǎn)單。其次,它也可以應(yīng)用于挖掘
當(dāng)應(yīng)用于挖掘時(shí),我們以比特幣為例。我們都知道,存儲(chǔ)在每個(gè)節(jié)點(diǎn)之中的塊數(shù)據(jù)是相同的,并且同一塊的哈希是相近的。在這種情況之下,無(wú)法確定誰(shuí)將獲得獎(jiǎng)勵(lì)。
關(guān)系
掃描二維碼推送至手機(jī)訪問。
版權(quán)聲明:本文由財(cái)神資訊-領(lǐng)先的體育資訊互動(dòng)媒體轉(zhuǎn)載發(fā)布,如需刪除請(qǐng)聯(lián)系。