在php函数中,有不少加密的函数,其中一个可以实现数据加密功能的函数叫crypt()函数。crypt() 函数使用一种单向算法,没有相应的解密函数。它返回使用 DES、Blowfish 或 MD5 算法加密的字符串。从表面上看,crypt()的函数似乎没有什么用处,但该函数的确被广泛用来保证系统密码的完整性。因为,单向加密的口令即使落入第三方的手里,由于不能被还原为明文,也没有什么大用处。 下面我们就来对crypt()函数的使用进行一些总结,希望对大家的php学习有所帮助。
crypt()函数相关内容
在介绍加密函数之前,我们先来介绍一下数据加密原理:就是对原来的明文件或者数据按照某种算法进行处理,使其成为不可读的一段代码,通常称之为“密文”,通过这样的途径来达到保护数据不被非法窃取和阅读的目的!在PHP中能对数据进行加密的函数主要有:crypt()、md5()以及sha1(),还有就是加密扩展库Mcrpyt和Mash。在这篇文章中,我们先介绍使用crpyt()函数进行加密!
crypt()函数是单向加密的,密文不可还原成明码,每次加密后的数据还不相同,怎么进行判断呢?
——这就是salt参数要解决的问题。crypt()函数用salt参数对明文进行加密,判断时,对输出的信息再次使用相同的salt参数进行加密,对比两次加密后的结果来进行判断。
crypt()函数定义如下。 string crypt (string input_string [, string salt])
其中,input_string参数是需要加密的明文字符串,第二个可选的salt是一个位字串,能够影响加密的暗码,进一步排除被破解的可能性。缺省情况下,PHP使用一个2个字符的DES干扰串,如果系统使用的是MD5(参考下一节内容),PHP则会使用一个12个字符的干扰串。可以通过执行下面的命令发现系统将要使用的干扰串的长度。
print "My system salt size is: ". CRYPT_SALT_LENGTH;
crypt() 函数返回使用 DES、Blowfish 或 MD5 加密的字符串。在不同的操作系统上,本函数的行为不同,某些操作系统支持一种以上的算法类型。在安装时,PHP 会检查什么算法可用以及使用什么算法。只要有一点使用非Windows平台经验的读者都可能对crypt()相当熟悉,这一函数完成被称作单向加密的功能,它可以加密一些明码,但不能反过来将密码重新转换为原来的明码。
PHP函数crypt()中的这些加密的口令对应的明码分别是kent、banner和parker。注意一下每个口令的前二个字母, 这是因为我使用了下面的代码,根据口令的前二个字母创建干扰串的我将使用Apache的口令-应答认证配置提示用户输入用户名和口令,一个鲜为人知的有关PHP的信息是,它可以把Apache 的口令-应答系统输入的用户名和口令识别为$PHP_AUTH_USER和$PHP_AUTH_PW,将在身份验证脚本中用到这二个变量。
相关问答
1. laravel5.2 openssl_encrypt() 的问题?
2. md5 - PHP:crypt()函数。请问其加密后的密值有可能等于盐值么?
【相关推荐】
2. php中文网免费视频教程:《php.cn独孤九贱(4)-php视频教程》
Atas ialah kandungan terperinci php函数crypt()的加密用法总结. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!