2011-03-13 5 views
4

테스트 암호 (testing4)를 phpbb3 해시로 변환하려고합니다. 이것은 내가 시도 코드 :텍스트를 phpbb 해시로 변환하는 방법?

<?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 개의 다른 호스트에. 그렇지 않으면 단순히 텍스트를 해시로 변환하는 온라인 서비스가 있습니까? 사전에

감사

답변

5

내가 있으리라 믿고있어 당신의 functions_phpbb.php 파일은 phpBB3 패키지의 includes/functions.php 파일의 사본입니다.

phpbb_hash 함수는 데이터베이스 연결 (모든 요청에 ​​대해 엔트로피를 변경하고 유지)에 따라 엔트로피에 대해 phpBB unique_id 함수를 사용하기 때문에이 오류가 발생하는 이유가 여기 있습니다.

두 가지 방법으로 해결할 수 있습니다.

) phpBB의 코드를 부트 스트랩하는 phpBB의 common.php을 포함합니다 (db 연결, 오류 처리기 등 포함).

b) phpBB3은 해시를 위해 phpass을 사용합니다. 독립형 phpass 패키지를 다운로드하고이를 사용하여 해시를 생성하는 것이 좋습니다.

$output = '$P$'; 

에 :

리틀주의 :이 줄을 변경해야합니다 있도록 phpBB3이 '$의 H의 $'에서 '$의 P의 $'에서 해시 식별자를 변경 (왜 나 한테 물어하지 않음) :

옵션 a)는 상당한 오버 헤드를 추가하고 아마도 해시 함수 만 사용하고자하므로 옵션 b)를 제안합니다.

+0

완벽한, 감사합니다! – Yesterday

+1

부수적으로, 변경 사항이 'P'작업을 수행 할 phpBB로 병합되었습니다. 이것은 phpBB 3.0.9에 존재합니다. – igorw

-1

가 기능을 탈출하여 SQL을 통해 암호 해시를 실행하는 이유가 궁금합니다 ..하지만 당신은 단순히 더미로 그 기능을 정의하는 시도 할 수 :

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

에 사용 : http://www.openwall.com/phpass/가 작동하려면, 당신은 생성 된 해시의 처음 3 개 문자를 변경해야합니다? – Yesterday

+0

지금 오류가 없지만 반향이 없습니다. – Yesterday

0

다른 방법 일 수 있습니다. 나는에서 라이브러리 사용했다 :

$P$ 

$H$ 

에 나는이 되었는데요 때 phpBB를

관련 문제