本篇文章向大家介紹PHP的Hash信息摘要擴展框架,有一定的參考價值,有需要的朋友可以參考一下,希望對大家有所幫助。
今天我們主要學習的是 PHP 中一些 Hash 散列加密相關(guān)的擴展函數(shù)的使用,而不是 Hash 算法,這種加密其實也只是一種更復(fù)雜一些的密鑰算法,與 Hash 算法類似的是,我們輸入的一串字符串,就像一個 Hash 表一樣有其對應(yīng)的 Hash 散列值,本質(zhì)上和普通的數(shù)據(jù)結(jié)構(gòu)中的 Hash 鍵值映射是一個道理,只是其算法更復(fù)雜一些。其實只要做過一段時間的 PHP 開發(fā),一定會對兩個函數(shù)很熟悉,它們就是 md5() 和 sha1() 。這兩個函數(shù)就是分別生成 md5 和 sha1 算法的 Hash 加密。不過,今天我們學習的相比這兩個函數(shù)更加的復(fù)雜一些,算法形式也更豐富一些。
什么是 Hash 信息摘要算法
通常,我們將一段內(nèi)容輸入一個 Hash 函數(shù)后,返回的一串散列字符串就是這個輸入值的 Hash 信息摘要。在 PHP 中,不管是 md5 還是 sha1 ,同樣的輸入會產(chǎn)生同樣的結(jié)果。由此,如果在保存用戶密碼類的信息時,我們盡量不要只使用一層 Hash ,因為這種形式的加密是可以通過彩虹表暴力破解出來的。我們可以對密碼進行多層 Hash 并加鹽來實現(xiàn)散列值的復(fù)雜化。
當然,Hash 算法并不止我們常用的 md5 和 sha1 ,還有很多其它類型的算法,只是我們并不常用。但是,今天介紹的函數(shù)正是可以進行多種不同類型的 Hash 加密的一組函數(shù),它們已經(jīng)在 PHP 中集成到了默認環(huán)境中,我們并不需要單獨的擴展就可以使用,這樣,就為我們的加密數(shù)據(jù)多樣化帶來了