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