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

标签 php hash passwords 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;
?>

这也行不通:

$pass = "testing4";
$hash = phpbb_hash($pass);

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

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

我已经在 2 个不同的主机上尝试过,但没有任何运气。否则是否有简单地将文本转换为哈希的在线服务?

提前致谢

最佳答案

我假设您的 functions_phpbb.php 文件是 phpBB3 包的 includes/functions.php 文件的副本。

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

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

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

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

小警告:phpBB3 将散列标识符从“$P$”更改为“$H$”(不要问我为什么),因此您必须更改这一行:

$output = '$P$';

到:

$output = '$H$';

因为选项 a) 增加了相当多的开销,而且您可能只想使用哈希函数,所以我建议选项 b)。

关于php - 如何将文本转换为 phpbb 哈希?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5288844/

相关文章:

javascript - JS 不适用于仅从 ajax 加载的数据

php - 了解盐是如何在 bcrypt password_hash 中生成/使用的

php - 在 ColdFusion MX7 和 PHP 5.x 上工作相同的散列函数?

android - 是否每部 Android 手机都支持 SHA-256

.htaccess - 如何通过 cpanel 中的 .htaccess 限制对我们网站的访问?

security - 自动生成的密码中应避免使用的字符

php - 有没有办法根据它们属于哪一列来对 MySql 中的值进行排名?

PHP Regex 拆分 SQL 字段列表

php - 如何只转义单引号?

c++ - 学校作业的简单密码加密