簡體   English   中英

如何將文本轉換為phpbb哈希?

[英]How to convert text to phpbb hash?

我試圖將測試密碼(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)。

也許是另一種方式。 我使用過以下庫: http//www.openwall.com/phpass/要使其正常工作,您必須更改生成的HASH的前3個字符:

$P$

$H$

用於phpbb

我想知道為什么他們通過SQL轉義函數運行密碼哈希..但你可以簡單地嘗試將該函數定義為虛擬:

function sql_escape($str) { return $str; }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM