PHP加密函数(md5()、sha1()和crypt())
在 PHP 中,常用的加密函数包括 md5() 函数、sha1() 函数和 crypt() 函数。本节将主要介绍这些加密函数的使用方法和技巧。
md5() 函数就是使用的 MD5 算法,其语法格式如下:
例如:
目前很多网站用户注册的密码都是首先使用 MD5 进行加密,然后将密码保存到数据库中。当用户登录时,程序把用户输入的密码计算成 MD5 值,然后和数据库中保存的 MD5() 值进行对比,这种方法可以保护用户的个人隐私,提高安全性。
crypt() 函数的语法格式如下:
因为 crypt() 函数是单向加密函数,所以没有对应的解密函数。
在不同的操作系统上,该函数的行为不同,某些操作系统支持一种以上的算法类型。在安装时,PHP 会检查什么算法可用以及使用什么算法。具体的算法依赖于 salt 参数的格式和长度。通过增加由使用特定加密方法的特定字符串所生成的字符串数量,salt 可以使加密更安全。
crypt() 函数支持 4 种算法和长度,如下表所示:
例如:
sha1() 函数的语法格式如下:
例如:
PHP md5()函数
MD5 是 Message-Digest Algorithm 5(信息-摘要算法)的缩写,它的作用是把任意长度的信息作为输入值,并将其换算成一个 128 位长度的“指纹信息”或“报文摘要”值来代表这个输入值,并以换算后的值作为结果。md5() 函数就是使用的 MD5 算法,其语法格式如下:
string md5(string str[,bool raw_output]);上述代码中的参数 str 为需要加密的字符串;参数 raw_output 是可选的,默认值为 false,若设置为 true,则该函数将返回一个二进制形式的密文。
例如:
<?php echo '使用md5()函数加密字符串mypssword:'; echo md5('mypssword'); ?>程序的运行结果为:

目前很多网站用户注册的密码都是首先使用 MD5 进行加密,然后将密码保存到数据库中。当用户登录时,程序把用户输入的密码计算成 MD5 值,然后和数据库中保存的 MD5() 值进行对比,这种方法可以保护用户的个人隐私,提高安全性。
PHP crypt()函数
crypt() 函数主要完成单向加密功能,返回使用 DES、Blowfish 或 MD5 算法加密的字符串。crypt() 函数的语法格式如下:
string crypt()(string str,string salt);其中的参数 str 为需要加密的字符串;参数 salt 表示加密时使用的干扰串。
因为 crypt() 函数是单向加密函数,所以没有对应的解密函数。
在不同的操作系统上,该函数的行为不同,某些操作系统支持一种以上的算法类型。在安装时,PHP 会检查什么算法可用以及使用什么算法。具体的算法依赖于 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$开头) |
例如:
<?php $str = '时间是一切财富中最宝贵的财富。'; //声明字符串变量$str echo '$str加密前的值为:'.$str; $cry = crypt($str,'st'); //对变量$str加密 echo '<p>$str加密后的值为:'.$cry; //输出加密后的变量 ?>程序运行结果如下图所示:

PHP sha1()函数
sha1() 函数使用的是 SHA 算法,SHA 是 Secure Hash Algorithm(安全哈希算法)的缩写,该算法和 MD5 算法类似。sha1() 函数的语法格式如下:
string sha1()(string str[,bool raw_output]);其中的参数 str 为需要加密的字符串;参数 raw_output 是可选的,默认为 false,此时该函数返回一个 40 位的十六进制数,如果 raw_output 为 true,则返回一个 20 位的二进制数。
例如:
<?php echo '使用md5()函数加密字符串mypassword:'; echo md5('mypassword'). '<br />'; echo '使用sha1()函数加密字符串mypassword:'; echo sha1 ('mypassword'); ?>程序运行结果如下图所示:
