例子
<?php$str = "Hello";echo md5($str);?> 輸出: 8b1a9953c4611296a827abf8c47804d7
其次來說sha1()函數: 定義和用法sha1() Function Compute字串的 SHA-1 散列。 sha1() 函數使用美國 Secure Hash 演算法 1。 如果成功,則返回所計算的 SHA-1 散列,如果失敗,則返回 false。 文法sha1(string,raw)
參數 |
描述 |
string |
必需。規定要計算的字串。 |
charlist |
可選。規定十六進位或二進位輸出格式:
- TRUE - 原始 20 字元二進位格式
- FALSE - 預設。40 字元十六進位數
注釋:該參數是 PHP 5.0 中添加的。 |
|
其次是crc32()函數: 定義和用法crc32() Function Compute一個字串的 crc32 多項式。 該函數可用於驗證資料的完整性。 文法crc32(string) string必需。規定要計算的字串。 說明產生 string 參數的 32 位迴圈冗餘校正碼多項式。這通常用於檢查傳輸的資料是否完整。 提示和注釋提示:由於 PHP 的整數是帶符號的,許多 crc32 校正碼將返回負整數,因此您需要使用 sprintf() 或 printf() 的 "%u" 格式符來擷取表示無符號 crc32 校正碼的字串。 例子例子 1在本例中,我們將在使用以及不使用 "%u" 格式符的情況下,輸出 crc32() 的結果(注意結果是相同的): <?php$str = crc32("Hello world!");echo 'Without %u: '.$str."<br />";echo 'With %u: ';printf("%u",$str);?> 輸出: Without %u: 461707669With %u: 461707669 例子 2在本例中,我們將在使用以及不使用 "%u" 格式符的情況下,輸出 crc32() 的結果(注意結果是不相同的): <?php$str = crc32("Hello world.");echo 'Without %u: '.$str."<br />";echo 'With %u: ';printf("%u",$str);?> 輸出: Without %u: -1959132156With %u: 2335835140 然後是uniqid()函數: 定義和用法uniqid() 函數基於以微秒計的目前時間,產生一個唯一的 ID。 文法uniqid(prefix,more_entropy) prefix可選。為 ID 規定首碼。如果兩個指令碼在相同的微妙產生 ID,該參數很有用。 more_entropy可選。規定位於傳回值末尾的更多的熵。 說明如果 prefix 參數為空白,則返回的字串有 13 個字串長。如果 more_entropy 參數設定為 true,則是 23 個字串長。 如果 more_entropy 參數設定為 true,則在傳回值的末尾添加額外的熵(使用組合線形同餘數產生程式),這樣可以結果的唯一性更好。 傳回值以字串的形式返回唯一識別碼。 提示和注釋注釋:由於基於系統時間,通過該函數產生的 ID 不是最佳的。如需產生絕對唯一的 ID,請使用 md5() 函數(請在字串函數參考中尋找)。 例子<?phpecho uniqid();?> 輸出類似: 4415297e3af8c 然後是crypt()函數: 定義和用法crypt() 函數返回使用 DES、Blowfish 或 MD5 加密的字串。 在不同的作業系統上,本函數的行為不同,某些作業系統支援一種以上的演算法類型。在安裝時,PHP 會檢查什麼演算法可用以及使用什麼演算法。 文法crypt(str,salt) str必需。規定要編碼的字串。 salt 可選。用於增加被編碼字元數目的字串,以使編碼更加安全。 如果未提供 salt 參數,則每次調用該函數時會隨機產生一個。 提示和注釋提示:解密函數是沒有的。crypt() 函數使用一種單向演算法。 例子在本例中,我們將測試不同的演算法: <?phpif (CRYPT_STD_DES == 1){echo "Standard DES: ".crypt("hello world")."\n<br />";}else{echo "Standard DES not supported.\n<br />";}if (CRYPT_EXT_DES == 1){echo "Extended DES: ".crypt("hello world")."\n<br />";}else{echo "Extended DES not supported.\n<br />";}if (CRYPT_MD5 == 1){echo "MD5: ".crypt("hello world")."\n<br />";}else{echo "MD5 not supported.\n<br />";}if (CRYPT_BLOWFISH == 1){echo "Blowfish: ".crypt("hello world");}else{echo "Blowfish DES not supported.";}?> 輸出類似(依賴於作業系統): Standard DES: $1$r35.Y52.$iyiFuvM.zFGsscpU0aZ4e. Extended DES not supported. MD5: $1$BN1.0I2.$8oBI/4mufxK6Tq89M12mk/ Blowfish DES not supported. 說明確切的演算法依賴於 salt 參數的格式和長度。 下面是與 crypt() 函數一起使用的一些常量。在安裝時,由 PHP 設定這些常量:
- [CRYPT_SALT_LENGTH]
- [CRYPT_STD_DES]
- [CRYPT_EXT_DES]
- [CRYPT_MD5]
- [CRYPT_BLOWFISH]
|