-1

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

我正在制作一个 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";
    }

  ?>
4

2 回答 2

0

您需要$_POST['password']使用与存储它们相同的方法对它们进行哈希处理。

像这样:

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

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

如果您创建的是外部​​ php 文件而不是 drupal 模块,您应该尝试研究如何包含您的函数。

在外部 PHP 文件中调用 Drupal 函数

Drupal:如何使用独立的 php 脚本访问 Drupal 的 API?

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

在这种情况下DRUPAL_HASH_COUNT

于 2013-07-02T07:03:47.673 回答
0

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

> $query = "select * from drupal_users where username = '".$username."'
> AND password = '".md5($password)."'";
于 2013-07-02T06:48:57.183 回答