md5+salt与password_hash()

md5+salt

 

 直接使用MD5()加密,是很容易被破解的(犹记得曾经忘记密码,到处找免费的破解网站...),但加上salt想要破解就难上很多了,即使你获得salt和最终密文,想要破解也是十分困难的。

 如何实现md5+salt?很简单,密码连接一个随机字符串即可。

function md5_salt_hash($pass)
{
    $salt = ‘5f9901fc60b7669’; //定义一个salt值,最好足够长,或者随机
    return md5($pass, $salt);
}


password_hash

 

 PHP5.5引入了Password Hashing函数,内核自带无需安装扩展,使用起来十分方便。它属于Password Hashing API(创建和校验哈希密码)函数之一。

 Password Hashing API包含4个函数:

 password_hash()password_verify()password_get_info()password_needs_rehash()

 

 string password_hash(string $password, integer $algo [, array $options ])

 参数:

 $password 密码

 $algo  哈希算法

 $options  选项

 实例:

$pwd = "123456";
$hash = password_hash($pwd, PASSWORD_DEFAULT);
echo $hash;


 上例输出结果类似:$$2y$10$.vGA1O9wmRjrwAVXD98HNOgsNpDczlqm3Jq7KnEd1rVAGv3Fykk1a,并且刷新页面该哈希值也会不断的变化。


 哈希值创建完毕,我们可以用password_verify()来校验密码是否和哈希值匹配。


 boolean password_verify ( string $password , string $hash )

 它接收2个参数:密码和哈希值,并返回布尔值。检查之前生成的哈希值是否和密码匹配,代码:

if (password_verify($pwd,'$2y$10$.vGA1O9wmRjrwAVXD98HNOgsNpDczlqm3Jq7KnEd1rVAGv3Fykk1a')) {  
    echo "密码正确";
} else {  
    echo "密码错误";
}


 基本上使用以上这2个函数就能安全的创建和校验hash密码了。

 

总结


MD5+salt加密 可跨语言加密解密。

password_hash加密 只能通过phppassword_verfiy校验。




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值