PHP crypt() 函數(shù)
定義和用法
crypt() 函數(shù)返回使用 DES、Blowfish 或 MD5 加密的字符串。
在不同的操作系統(tǒng)上,本函數(shù)的行為不同,某些操作系統(tǒng)支持一種以上的算法類型。在安裝時,PHP 會檢查什么算法可用以及使用什么算法。
語法
crypt(str,salt)
參數(shù) | 描述 |
---|---|
str | 必需。規(guī)定要編碼的字符串。 |
salt |
可選。用于增加被編碼字符數(shù)目的字符串,以使編碼更加安全。 如果未提供 salt 參數(shù),則每次調用該函數(shù)時會隨機生成一個。 |
說明
確切的算法依賴于 salt 參數(shù)的格式和長度。
下面是與 crypt() 函數(shù)一起使用的一些常量。在安裝時,由 PHP 設置這些常量:
- [CRYPT_SALT_LENGTH]
- [CRYPT_STD_DES]
- [CRYPT_EXT_DES]
- [CRYPT_MD5]
- [CRYPT_BLOWFISH]
提示和注釋
提示:解密函數(shù)是沒有的。crypt() 函數(shù)使用一種單向算法。
例子
在本例中,我們將測試不同的算法:
<?php if (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."; } ?>
輸出類似(依賴于操作系統(tǒng)):
Standard DES: $1$r35.Y52.$iyiFuvM.zFGsscpU0aZ4e. Extended DES not supported. MD5: $1$BN1.0I2.$8oBI/4mufxK6Tq89M12mk/ Blowfish DES not supported.