使用php的加密函数加密

2017/1/22

我们在处理用户的数据的时候,经常会有加密的需求。以前常用的是md5或者是sha一系列的加密方法,但是随着时间的发展,以前的加密技术已经不再安全,很多网站都提供md5后的字符串,所以md5的安全性已经很低了。php现在有新的加密函数可以使用。

在(PHP 5 >= 5.5.0, PHP 7)中提供了password_hash来创建一个加密hash。方法是string password_hash ( string $password , integer $algo [, array $options ] )。

$password就是需要加密的字符串;$algo是来加密的方法,目前可以**PASSWORD_DEFAULT**和**PASSWORD_BCRYPT**两种方法进行加密;$options是一个数组,目前用来传递salt和cost两个参数,salt是用来加密的盐值,一般可以使用默认值;cost可以理解为加密的复杂度,数值越大加密需要消耗的服务器资源越大。如果成功就会返回加密后的字符串,失败则会返回FALSE。

使用boolean password_verify ( string $password , string $hash )方法进行验证,只要简单的传入当前的密码和数据库(或其他地方)保存的加密后的哈希值就能比较是否相等,如果匹配会返回TRUE否则返回FALSA。

在使用的过程中需要注意,password_hash方法返回的字符串默认是60个字符(如果安全性要求高的话最好存储255),所以确保存储的时候一定要大于返回的字符串长度,否则最后验证的时候是不会成功的。