关于php的crypt

http://php.net/manual/zh/function.crypt.php

http://www.w3school.com.cn/php/func_string_crypt.asp

上面的文档是crypt的详细说明。

在我的实践中发现,不加salt值,默认是CRYPT_MD5,随机产生了以 $1$ 开始的12字符的salt值。正如文档中提到的:

如果没有提供盐值,PHP 将自动生成一个 2 个字符(DES)或者 12 个字符(MD5)的盐值 ,这取决于 MD5 crypt() 的可用性。

 不加salt值的前提下,若md5可用,则md5优先。

 

 注意两个问题:

1、crypt的返回值前面部是salt值,不同的算法,salt的格式及长度不同。

2、调用crypt时会根据salt的格式及长度来决定算法。

 

crypt验证过程:

$PWD='12345';
$crypt_PWD=crypt($PWD);
echo $crypt_PWD; //密文前12个字符为salt值
echo crypt($PWD,$crypt_PWD); //自动取$crypt_PWD前12个字符作为salt
echo crypt($PWD,substr($crypt_PWD,0,12)); //与上面一行的返回值相同
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值