Hash散列算法解析
雖然hash算法種類很多很多。然而,由于有先例(MD5,SHA-1,ripemd都不安全),我們很難保證使用那些標(biāo)準(zhǔn)的hash算法不會(huì)導(dǎo)致將來的不安全。于是,自己設(shè)計(jì)一個(gè)新的保密的hash算法就成了絕佳的選擇。如何設(shè)計(jì)呢?
????? 作者認(rèn)為,至少有以下3種方法:
- 按照普通Hash算法模式設(shè)計(jì)
- 修改標(biāo)準(zhǔn)Hash算法
- 利用加密算法來構(gòu)造Hash算法
????? 第一種辦法設(shè)計(jì)到的東西和內(nèi)容很多,作者暫時(shí)沒有這個(gè)能力去設(shè)計(jì)一個(gè)安全度很高的Hash算法。
????? 第二種辦法很容易做到,大家都知道,任何一種hash算法都會(huì)有很多的常量,我們可以找到其中的幾個(gè)常量,把它們修改成其它值。為了安全起見,把這些值修改成大素?cái)?shù)是一個(gè)不錯(cuò)的選擇。不過,這樣修改之后,hash算法的安全度可能變低了(也可能變高了),所以,對(duì)修改后的算法進(jìn)行保密是很必要的。
????? ?第三種辦法。已經(jīng)知道,hash算法和加密算法有著特別的大的聯(lián)系。hash函數(shù)本來就是一個(gè)單向函數(shù),而加密函數(shù)其實(shí)是一個(gè)陷門單向函數(shù)。設(shè)計(jì)hash算法的時(shí)候,可以直接利用對(duì)稱加密函數(shù)。以下是一個(gè)簡(jiǎn)單的例子:
?????? 基于AES的hash函數(shù):
????? 可以看到,本hash算法具有很高的安全度,每次的m和k幾乎沒有任何聯(lián)系(除了第一次加密以外)。其主要缺點(diǎn)是每次只計(jì)算16個(gè)字節(jié),一般的Hash算法都計(jì)算64個(gè)字節(jié)。這導(dǎo)致了本算法的速度慢了許多。?
轉(zhuǎn)載于:https://www.cnblogs.com/ayhq/p/5392798.html
總結(jié)
以上是生活随笔為你收集整理的Hash散列算法解析的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 一个简单的配置管理器(SettingMa
- 下一篇: 学习笔记——XSLT转换器的使用(Xal