当前位置: 首页 > 后端技术 > PHP

PHP是如何处理密码的

时间:2023-03-29 21:44:34 PHP

原文来自:https://jellybool.com/post/php-password-hash-in-the-right-way在使用PHP开发web应用的过程中,很多应用都会要求User注册,在注册时,我们需要处理用户信息。最常见的是电子邮件地址和密码。本文意在讨论密码的处理:即密码的加密。MD5相信很多PHP开发者在初次接触PHP的时候,首选的处理密码的加密函数可能就是MD5了。这就是我当时所做的:$password=md5($_POST["password"]);上面的代码是不是很熟悉?不过MD5加密方式目前在PHP的江湖上似乎并不是很流行,因为它的加密算法实在是有点简单,而且很多密码破解网站都存储了大量的MD5加密后的密码字符串,所以在此强烈劝阻单独使用MD5来加密用户密码。SHA256和SHA512其实和之前的MD5同时具有SHA1的加密方式,但是算法比较简单,这里就提一下吧。这里要说的SHA256和SHA512都是SHA2家族的加密函数。看名字你可能就猜到了。这两种加密方法分别生成长度为256位和512位的哈希字符串。它们的用法如下:12//默认成本是10];$hash=password_hash($password,PASSWORD_DEFAULT,$options);密码加密后,我们需要对密码进行校验,判断用户输入的密码是否正确:12])){//cost更改为12$hash=password_hash($password,PASSWORD_DEFAULT,['cost'=>12]);//不要忘记存储新的hash!}只有这样,PHP的PasswordHashingAPI才会知道我们又更换了加密方式,这样做的主要目的是为了后续的密码验证。简单的说password_get_info(),这个函数一般可以看到以下三个信息:algo-算法实例algoName-算法名options-加密时的可选参数所以,现在就开始使用PHP5.5吧,版本低了就不用担心了。(现在使用7.0)