哈希競(jìng)猜游戲系統(tǒng)開(kāi)發(fā)(開(kāi)發(fā)案例)丨哈希競(jìng)猜游戲現(xiàn)成源碼交付
時(shí)間:2023-05-31 07:33:01 | 來(lái)源:網(wǎng)站運(yùn)營(yíng)
時(shí)間:2023-05-31 07:33:01 來(lái)源:網(wǎng)站運(yùn)營(yíng)
哈希競(jìng)猜游戲系統(tǒng)開(kāi)發(fā)(開(kāi)發(fā)案例)丨哈希競(jìng)猜游戲現(xiàn)成源碼交付:哈希競(jìng)猜游戲軟件系統(tǒng)開(kāi)發(fā)詳解
溫馨提示:專業(yè)系統(tǒng)軟件開(kāi)發(fā)技術(shù)公司,非平臺(tái)方,會(huì)員玩勿擾,謝謝。
哈希是將任意長(zhǎng)的輸入編程加密的固定長(zhǎng)度輸出的過(guò)程。開(kāi)發(fā)詳情V:MrsFu123,哈希并不等同于加密方法,因?yàn)闊o(wú)法解密哈希值來(lái)獲取原始數(shù)據(jù)。事實(shí)上哈希是一種單項(xiàng)加密函數(shù)。
有了哈希函數(shù),就可以將互聯(lián)網(wǎng)上的數(shù)據(jù)以固定長(zhǎng)度字符串的形式來(lái)保存。其中一種方法就是SHA-256(安全哈希算法-256位),SHA-256是SHA-1的后繼者,SHA-1的輸出是160位的。
Hash is generally translated as hash,but also directly transliterated as hash,that is,input of any length(also known as pre image)is transformed into output of fixed length through hash algorithm,and the output is the hash value.
This transformation is a kind of compression mapping,that is,the space of hash value is usually much smaller than the space of input.Different inputs may be hashed into the same output,and it is impossible to uniquely determine the input value from the hash value.
哈希值有以下四個(gè)特點(diǎn):
1.計(jì)算效率高(要計(jì)算任何輸入值的哈希值非常容易)
2.抗沖突(沒(méi)有兩條輸入值可以給出相同的哈希值)
3.隱藏輸入信息(不能通過(guò)哈希值推算出輸入值)
4.輸出應(yīng)該看起來(lái)隨機(jī)(但是一樣的輸入值會(huì)得到一樣的哈希值)
如何用哈希來(lái)確保數(shù)據(jù)安全?
哈希還增加了數(shù)據(jù)的安全性。因?yàn)闆](méi)有加密數(shù)據(jù),所以無(wú)需也無(wú)法解密數(shù)據(jù)。因?yàn)楣:瘮?shù)是單向加密函數(shù),加密哈希函數(shù)需要滿足一些關(guān)鍵特征才能保證是有用的,包括:
每個(gè)哈希值都是不同的
相同的消息會(huì)生成相同的哈希值
無(wú)法根據(jù)哈希值確定輸入值
輸入值的微小變化也會(huì)導(dǎo)致整個(gè)哈希值的變化
常用hash算法的介紹:
?。?)MD4
MD4(RFC 1320)是MIT的Ronald L.Rivest在1990年設(shè)計(jì)的,MD是Message Digest(消息摘要)的縮寫(xiě)。它適用在32位字長(zhǎng)的處理器上用高速軟件實(shí)現(xiàn)——它是基于32位操作數(shù)的位操作來(lái)實(shí)現(xiàn)的。
?。?)MD5
MD5(RFC 1321)是Rivest于1991年對(duì)MD4的改進(jìn)版本。它對(duì)輸入仍以512位分組,其輸出是4個(gè)32位字的級(jí)聯(lián),與MD4相同。MD5比MD4來(lái)得復(fù)雜,并且速度較之要慢一點(diǎn),但更安全,在抗分析和抗差分方面表現(xiàn)更好。
?。?)SHA-1及其他
SHA1是由NIST NSA設(shè)計(jì)為同DSA一起使用的,它對(duì)長(zhǎng)度小于264的輸入,產(chǎn)生長(zhǎng)度為160bit的散列值,因此抗窮舉(brute-force)性更好。SHA-1設(shè)計(jì)時(shí)基于和MD4相同原理,并且模仿了該算法。
哈希函數(shù)
(1)余數(shù)法:先估計(jì)整個(gè)哈希表中的表項(xiàng)目數(shù)目大小。然后用這個(gè)估計(jì)值作為除數(shù)去除每個(gè)原始值,得到商和余數(shù)。用余數(shù)作為哈希值。因?yàn)檫@種方法產(chǎn)生沖突的可能性相當(dāng)大,因此任何搜索算法都應(yīng)該能夠判斷沖突是否發(fā)生并提出取代算法。
(2)折疊法:這種方法是針對(duì)原始值為數(shù)字時(shí)使用,將原始值分為若干部分,然后將各部分疊加,得到的最后四個(gè)數(shù)字(或者取其他位數(shù)的數(shù)字都可以)來(lái)作為哈希值。
(3)基數(shù)轉(zhuǎn)換法:當(dāng)原始值是數(shù)字時(shí),可以將原始值的數(shù)制基數(shù)轉(zhuǎn)為一個(gè)不同的數(shù)字。例如,可以將十進(jìn)制的原始值轉(zhuǎn)為十六進(jìn)制的哈希值。為了使哈希值的長(zhǎng)度相同,可以省略高位數(shù)字。
(4)數(shù)據(jù)重排法:這種方法只是簡(jiǎn)單的將原始值中的數(shù)據(jù)打亂排序。比如可以將第三位到第六位的數(shù)字逆序排列,然后利用重排后的數(shù)字作為哈希值。