--------------------------------------------------------------------------------
函数:crypt()
--------------------------------------------------------------------------------
字符串处理函数库
crypt
将字符串用 DES 编码加密。语法: string crypt(string str, string [salt]);返回值: 字符串函数种类: 编码处理
内容说明
本函数将字符串用 UNIX 的标准加密 DES 模块加密。这是单向的加密函数,无法解密。欲比对字符串,将已加密的字符串的头二个字符放在 salt 的参数中,再比对加密后的字符串。更详细的资料请参考 UNIX Manual (man) 中的 crypt。在一些较新的 UNIX 版本中,除了 DES 之外还提供了其它的加密模块,如 MD5。甚至有些系统还用 MD5 取代 DES。在 salt 参数还有一些变化,端看传给 salt 参数的字符串长度而定:
CRYPT_STD_DES - 标准的 DES 编码,输入 2 字符的 salt。
CRYPT_EXT_DES - 延伸的 DES 编码,输入 9 字符的 salt。
CRYPT_MD5 - MD5 编码,输入 12 字符加上 $1$ 的 salt。
CRYPT_BLOWFISH - 延伸的 DES 编码,输入 16 字符加上 $2$ 的 salt。
此外,若不使用 salt 参数,则程序会自动产生。
--------------------------------------------------------------------------------整理: sadly (www.phpx.com)
[ 上一页 下一页 ]
“将已加密的字符串的头二个字符放在 salt 的参数中,再比对加密后的字符串。“
这句话实难了解。
哦,找到了,是这个:
http://www.ccidnet.com/tech/app/2001/08/07/58_2902.html
//////////////////////////////////////////////////////////////////
//字符串加密函数
//说明: 用于用户表中的用户密码的加密
// 本函数为单向加密,不可逆转
// 主要是采用crypt()函数加密,本函数使用标准DES算法
// 算法 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$
//输入: $str---待加密得字符串,$salt---干扰串
// 如果$str 不足2个字母,就用$salt串;
// 如果$salt不足2个字母,就默认"password"
//输出: 加密后的字符串
//作者: ylx([email protected])
//编制时间:2002-04-11 14:37
//其它: 本系统中,请注意要保持$salt的一致性,建议调用时不用$salt参数
function str_encrypt($str,$salt="password")
{
//
if(strlen($str)<2){
if(strlen($salt)<2) $temp="password";
else $temp=$salt;
}
else{
$temp=$str;
}
return crypt($str,substr($temp,0,2));
}