教程集 www.jiaochengji.com
教程集 >  脚本编程  >  php  >  正文 在PHP中加密

在PHP中加密

发布时间:2016-10-29   编辑:jiaochengji.com
教程集为您提供在PHP中加密 等资源,欢迎您收藏本站,我们将为您提供最新的在PHP中加密 资源

PHP提供了使用其crypt()函数完成单向加密功能的可能性。
  string crypt (string input_string [, string salt])
  其中的input_string参数是需要加密的字符串,第二个可选的salt是一
个位字串,它能够影响加密的暗码,进一步地排除被称作预计算攻击的可能
性。缺省情况下,PHP使用一个2个字符的DES干扰串,如果你的系统使用的是
MD5,它会使用一个12个字符的干扰串。顺便说一下,可以通过执行下面的命
令发现系统将要使用的干扰串的长度:
    print "My system salt size is: ". CRYPT_SALT_LENGTH;
  系统也可能支持其他的加密算法。crypt()支持四种算法,下面是它支持
的算法和相应的salt参
数的长度:
  算法                      Salt长度
  CRYPT_STD_DES         2-character (Default)
  CRYPT_EXT_DES         9-character
  CRYPT_MD5              12-character beginning with $1$
  CRYPT_BLOWFISH        16-character beginning with $2$
  用crypt()实现用户身份验证
  作为crypt()函数的一个例子,考虑这样一种情况,你希望创建一段PHP
脚本程序限制对一个目录的访问,只允许能够提供正确的用户名和口令的用
户访问这一目录。我将把资料存储在我喜欢的数据库MySQL的一个表中。下面
我们以创建这个被称作members的表开始我们的例子:
mysql>CREATE TABLE members (
    ->username CHAR(14) NOT NULL,
    ->password CHAR(32) NOT NULL,
    ->PRIMARY KEY(username)
    ->);
  然后,我们假定下面的数据已经存储在该表中:
  用户名               密码
  clark          keloD1C377lKE
  bruce         ba1T7vnz9Awgk
  peter         paLUvRWsRLZ4U
  这些加密的口令对应的明码分别是kent、banner和parker。注意一下每
个口令的前二个字母,这是因为我使用了下面的代码,根据口令的前二个字
母创建干扰串的:
  $enteredPassword.
  $salt = substr($enteredPassword, 0, 2);
  $userPswd = crypt($enteredPassword, $salt);
  // $userPswd然后就和用户名一起存储在MySQL中
  我将使用Apache的口令-应答认证配置提示用户输入用户名和口令,一个
鲜为人知的有关PHP的信息是,它可以把Apache的口令-应答系统输入的用户
名和口令识别为$PHP_AUTH_USER和$PHP_AUTH_PW,我将在身份验证脚本中用
到这二个变量。

您可能感兴趣的文章:
php加密函数md5,crypt,base64_encode的用法介绍
php base64加密解密的实现代码
有关discuz程序中PHP加密函数的原理分析
php可逆加密函数代码一例
PHP加密扩展库Mcrypt的例子
【哈希密码】PHP比md5更安全的加密方式
PHP如何使用AES加密和解密
php mcrypt启用、加密以及解密的方法介绍
PHP 数据加密的方法
php中DES加密与解密的实例代码

[关闭]
~ ~