使用PHP的用户散列和腌制密码

时间:2015-05-24 16:04:08

标签: php mysql hash passwords

我被认为MD5和SHA1不是处理密码的最佳做法,因此我想确保我以最安全的方式做事。

我不知道如何实现这一点,我从另一个网站获得了一个网站#34; Developer"谁用纯文本存储密码......这就是我现在纠正它的原因。

我的理解是:

  • 用户注册X并输入所需的密码以便日后登录。

  • 输入的详细信息将提交给数据库。提交密码并使用哈希服务器端,然后加密。

  • 当用户下次登录时,密码将被重新散列并与现有数据库中的条目进行比较。如果密码正确,则授予访问权限。

我目前的设置是PHP,PHP My Admin管理数据库。

我:

想要哈希/盐渍密码的单独表/数据库吗? PHP中是否存在可用于散列密码的现有函数? 是否需要哈希,盐和胡椒密码?

谢谢,我是PHP的新手,并且希望确保这些信息得到安全保护"

2 个答案:

答案 0 :(得分:2)

PHP v5.5为授权提供了内置函数。阅读:

password_hash()password_verify()

使用经过验证的组件比使用自己创建的组件更好 - 尤其是授权过程。破坏授权是主要漏洞之一!

答案 1 :(得分:0)

你只是这样做:

 <?php
 $password = md5($_POST['password']); // or md5($_GET['password'])
  // insert into the database

然后在登录时比较它的相同过程

 $password = md5($_POST['password']);
 $login = "select username from users where password = '".$password."'";

完成:)