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