PHP加密函數—sha1()函數加密
首先我們先介紹下什麼是 sha1 ?
sha的全稱是:Secure Hash Algorithm(安全雜湊演算法)主要適用於數位簽章標準 (DSS) (Digital Signature Standard DSS)裡面定義的數位簽章演算法(Digital Signature Algorithm DSA)。對於長度小於2^64位的訊息,SHA1會產生一個160位的訊息摘要。當接收到訊息的時候,這個訊息摘要可以用來驗證資料的完整性。在傳輸的過程中,資料很可能會發生變化,那麼這時候就會產生不同的訊息摘要。PHP提供的sha1()函數使用的就是SHA 演算法!
在之前介紹的兩篇文章《PHP加密函數—crypt()函數加密》和《PHP加密函數—md5()函數加密》,相信大家對加密有一定瞭解,在本章中我們將繼續介紹跟MD5()函數類似的sha1()函數演算法。
sha1()函數的文法格式如下:
string sha1 ( string $str [, bool $raw_output = false ] )
| 參數 |
描述 |
| string |
必需。規定要計算的字串。 |
| raw |
可選。規定十六進位或二進位輸出格式:TRUE - 原始 20 字元二進位格式FALSE - 預設。40 字元十六進位數 |
函數返回一個 40位的十六進位數,如果參數 raw_output 為 true,那麼就會返回一個 20位的位元,預設是 raw_output 是為 false。
在這裡我們要著重的說明下:
sha後面的 1 是阿拉伯數字(123456)裡的 1 ,不是字母l(L),很多人都會看成是字母,但是它是阿拉伯數字,這裡大家一定要注意,不要搞錯了!
下面是sha1()函數的執行個體,具體代碼如下:
<?phpheader("Content-Type:text/html; charset=utf-8");$str = "中文網";echo "字串:".$str."<br>";echo "TRUE - 原始 20 字元二進位格式:".sha1($str, TRUE)."<br>";echo "FALSE - 40 字元十六進位數:".sha1($str)."<br>";?>
輸出結果為:
下面執行個體是輸出 sha1() 的結果並對其進行測試:
<?phpheader("Content-Type:text/html; charset=utf-8");$str = "中文網";echo sha1($str);if (sha1($str) == "b1d5e6240057f21930892531def6597f135252ca "){ echo "<br>I love 中文網!"; exit;}?>
輸出結果為:
下面執行個體是MD5 和SHA 加密運算對比,具體帶代碼如下:
<?phpheader("Content-Type:text/html; charset=utf-8");$str = "中文網";echo "MD5的加密結果:".md5($str)."<br>";echo "<br>";echo "sha1的加密結果:".sha1($str)."<br>";?>
輸出結果為:
在PHP中的資料加密函數的主要三個 crypt()、md5()以及sha1()就介紹完了,下面的文章我們將介紹PHP加密庫:Mcrypt和Mhash的兩個擴充庫!
【相關推薦】
1. 相關專題推薦:《PHP加密函數》
2.PHP加密函數—crypt()函數加密用法執行個體
3.PHP加密函數—md5()函數加密的執行個體用法
4.PHP加密技術視頻教程