如何使用函数<user_hash_password> </user_hash_password>散列密码

时间:2013-07-02 06:43:24

标签: php hash drupal-7 password-encryption

我不是专业开发人员所以我的问题可能听起来很愚蠢,对不起,

我正在创建一个Android应用程序,它连接到存储密码的用户数据库 哈希格式,所以我不知道如何在我的php文件中包含这个函数user_hash_password,这样我就可以对输入的密码进行哈希处理,然后将其与数据库中的密码进行匹配,我想你可以帮助我学习它。顺便说一下,已存储的密码使用相同的函数进行哈希处理。

非常感谢您的帮助:)

 <?php

    $hostname = "localhost";
    $database = "android";
    $username = "root";
    $password = "";
    $localhost = mysql_connect($hostname, $username, $password) 
    or trigger_error(mysql_error(),E_USER_ERROR);
    mysql_select_db($database, $localhost);

    $username = $_POST['username'];
    $password = $_POST['password'];


    $query = "select * from drupal_users where username = '".$username."' AND password = '".$password."'";
    $query_exec = mysql_query($query) or die(mysql_error());

    $rows = mysql_num_rows($query_exec);
    if($rows == 0) {
    echo "No user was found";

    }else {
    echo "User found";
    }

  ?>

2 个答案:

答案 0 :(得分:0)

首先在md5(密码)中保存数据库中的密码。比拿取使用时

> $query = "select * from drupal_users where username = '".$username."'
> AND password = '".md5($password)."'";

答案 1 :(得分:0)

您需要使用与存储它们相同的方法来散列$_POST['password']

就像这样:

$password =  user_hash_password($_POST['password']);

但您需要包含包含此方法的drupal文件(includes/password.inc)。

如果你创建一个外部php文件而不是drupal模块,你应该尝试研究如何包含你的功能。

Calling Drupal functions in external PHP file

Drupal: how to access to Drupal's APIs with a standalone php script?

或者您可以通过重新创建并查找所需的变量/常量来对哈希方法进行反向工程。

在这种情况下DRUPAL_HASH_COUNT