1、crypt()
crypt()函数可以完成单向加密功能。
string crypt( string str [, string salt]);
//str: 是需要加密的字符串;salt: 为加密时使用的干扰串。如果省略salt,则会随机生成一个干扰串。
crypt()函数支持4种算法和长度:
________________________________________________
算法 | salt长度
CRYPT_STD_DES | 2-character(默认)
CRYPT_EXT_DES | 9-character
CRYPT_MD5 | 12-character(以$1$开头)
CRYPT_BLOWFISH | 16-character(以$2$开头)
———————————————————————————
crypt()函数是单向加密的,密文不可还原成明码,每次加密后的数据还不相同,怎么进行判断呢?
——这就是salt参数要解决的问题。crypt()函数用salt参数对明文进行加密,判断时,对输出的信息再次使用相同的salt参数进行加密,对比两次加密后的结果来进行判断。
2、md5()
crypt()函数只能用在对安全性要求较低的系统中。如果想要提高安全性,则需要使用md5()函数。
md5()函数使用MD5(Message-Digest Algorithm 5 信息-摘要算法)算法。它的作用是把不同长度的数据信息经过一系列的算法计算成一个128位的数值,就是把一个任意长度的字节串变换成一定长的整数。注意:这里是“字节串”而不是“字符串”,因为这种变换只与字节的值有关,与字符集或编码方式无关。
string md5( string str [, bool raw_output]);
//raw_output参数如果为真,则函数返回一个二进制形式的密文。默认为FALSE。
3、sha1()
和MD5类似的还有SHA算法( Secure Hash Algorithm 安全哈希算法)。PHP提供的sha1()函数使用的就是SHA。
string sha1( string str [, bool raw_output])
该函数返回一个40位的十六进制数,如果raw_output为真,则返回一个20位的二进制数。默认为FALSE。