PHP之密码加密的几种方式 PHP开发WEB应用程序,经常会完成用户注册信息,注册信息里面包括邮箱和密码的验证问题,这篇文章主要是针对密码加密的技师方式。 MD5 相信很多PHP开发者在最先接触PHP的时候,处理密码的首选加密函数可能就是MD5了,我当时就是这样的: 复制代码 代码如下: $password = md5($_POST["password"]); 上面这段代码是不是很熟悉?然而MD5的加密方式目前在PHP的江湖中貌似不太受欢迎了,因为它的加密算法实在是显得有点简单了,而且很多破解密码的站点都存放了很多经过MD5加密的密码字符串,所以这里我是非常不提倡还在单单使用MD5来加密用户的密码的。 SHA256 和 SHA512 其实跟前面的MD5同期的还有一个SHA1加密方式的,不过也是算法比较简单,所以这里就一笔带过吧。而这里即将要说到的 SHA256 和 SHA512 都是来自于SHA2家族的加密函数,看名字可能你就猜的出来了,这两个加密方式分别生成256和512比特长度的hash字串。 他们的使用方法如下: 复制代码 代码如下: custom_function_for_salt(), //write your own code to generate a suitable salt 'cost' => 12 // the default cost is 10 ]; $hash = password_hash($password, PASSWORD_DEFAULT, $options); 密码加密过后,我们需要对密码进行验证,以此来判断用户输入的密码是否正确: 12])) { // cost change to 12 $hash = password_hash($password, PASSWORD_DEFAULT, ['cost' => 12]); // don't forget to store the new hash! } 只有这样,PHP的 Password Hashing API 才会知道我们重现更换了加密方式,这样的主要目的就是为了后面的密码验证。 简单地说一下 password_get_info() ,这个函数一般可以看到下面三个信息: algo – 算法实例 algoName – 算法名字 options – 加密时候的可选参数 通过以上内容的介绍,个人建议PHP5.5版本用起来比较好用。希望大家喜欢以上内容所述。