用户登录的php md5密码

标签 php mysql

<分区>

我似乎已经尝试了各种方法让我的登录正常工作,但是当我尝试登录时,它会在用户密码处停止并且永远不会获取它。我在我的寄存器中使用 sha1 并且在插入数据库时​​工作正常.

$username = $_POST['username'];
$password = md5($_POST['password']);

$result = mysql_query("SELECT * FROM users WHERE username = '$username' ");



while ($row = mysql_fetch_array($result))
{
    if($username == $row['username'] )
    {
        if( $password == $row['password'])
        {
            header("location: profile.php");
        }
        else    
            echo 'pass problem';
    }
    else

        echo 'username issue ';


}

最佳答案

这么多问题...

  1. md5 不安全。使用盐 + key + 密码。
  2. mysql_ 函数已弃用。使用 mysqli_PDO
  3. 没有卫生设施。使用准备好的语句和绑定(bind)参数。
  4. 不要SELECT *。只获取您需要的列。
  5. 为要返回的结果数添加一个LIMIT
  6. 单个结果不需要while循环。
  7. 密码是如何存储在数据库中的?显然 md5 的密码与您的列不匹配。

实际问题

如果用户密码存储为 sha1 然后与 md5 进行比较,则不能混合使用加密类型。

关于用户登录的php md5密码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16046334/

相关文章:

php - 使用 symfony/propel 进行增量更新

php - 在 camelCased 字符串中的单词之间添加空格,然后大写第一个单词

python - 根据过滤/排序数据的需要何时使用数据库?

php - Magento 中过滤器搜索时的自定义网格中未返回产品名称

php - 检查xml文件是否为空

php - 设置Kohana的错误记录

javascript - 如何为 css 和 javascript 设置缓存

python - python中使用cursor.callproc()调用MySQL存储过程

mysql - 编写Select语句进行查询

mysql - 怎样才能拥有一切的人呢? mysql