如何将文本转换为phpbb哈希?

Yes*_*day 4 php passwords hash phpbb3

我试图将测试密码(testing4)转换为phpbb3哈希.这是我尝试过的代码:

<?php
/** 
*
* @package phpBB3
* @version $Id: v3_dbal.xml 44 2007-07-25 11:06:55Z smithy_dll $
* @copyright (c) 2005 phpBB Group 
* @license http://opensource.org/licenses/gpl-license.php GNU Public License 
*
*/

/**
* @ignore
*/
define('IN_PHPBB', true);
include ("functions_phpbb.php");

$data['new_password'] = "testing4";

$user_row = array(
    'user_password' => phpbb_hash($data['new_password'])
    );

$hash = $user_row['user_password'];

echo $hash;
?>
Run Code Online (Sandbox Code Playgroud)

这也不起作用:

$pass = "testing4";
$hash = phpbb_hash($pass);
Run Code Online (Sandbox Code Playgroud)

两次我都收到以下错误消息:

Fatal error: Call to a member function sql_escape() on a non-object in /home/a8544020/public_html/Pass/functions_phpbb.php on line 149
Run Code Online (Sandbox Code Playgroud)

我已经在2个不同的主机上试了一下而没有任何运气.否则是否有一个简单的文本转换为哈希的在线服务?

提前致谢

igo*_*orw 5

我假设你的functions_phpbb.php文件是includes/functions.phpphpBB3包文件的副本.

现在,您收到此错误的原因是因为该phpbb_hash函数使用phpBB unique_id函数进行熵,这取决于数据库连接(在每个请求上更改并保留熵).

有两种方法可以解决这个问题.

a)包括phpBB common.php,它将为phpBB引导你的代码(包括数据库连接,错误处理程序等).

b)phpBB3使用phpass进行散列.我建议您只需下载独立的phpass包并使用它来生成哈希.

小警告:phpBB3将哈希标识符从'$ P $'更改为'$ H $'(不要问我为什么),所以你必须改变这一行:

$output = '$P$';
Run Code Online (Sandbox Code Playgroud)

至:

$output = '$H$';
Run Code Online (Sandbox Code Playgroud)

由于选项a)增加了一些开销,并且您可能只想使用散列函数,我建议选项b).