Hashowanie hasła

Forum przeznaczone na rozmowy między autorami modyfikacji i inne pytania związane z poważniejszą ingerencją w kod phpBB 3.0.x.
narkil
Posty: 3
Rejestracja: 21 lutego 2011, 11:12

Hashowanie hasła

Post autor: narkil » 21 lutego 2011, 11:17

Witam,
mam problem z hashowanie hasła w phpBB3, znalazłem http://wiki.phpbb.com/Phpbb_hash informację, że ta wersja phpBB ma swoją funkcję hashującą, chciałem się zalogować na stronie głównej poprzez użytkownika forum, ale nie mogę sobie poradzić z hashowaniem hasła, używają tego codu:

Kod: Zaznacz cały

$password = request_var('password','');
$password_hash = phpbb_hash($password);
trigger_error('The password that was entered is hashed as:<hr/>'.$password_hash);
dla hasła 'omk' dostałem kolejno:

Kod: Zaznacz cały

The password that was entered is hashed as:
$H$9Zs9xc.EVmKM7xXudODJw1FW4BTNwz.

Kod: Zaznacz cały

The password that was entered is hashed as:
$H$9zKGLdHEJkUM0NhW724eGafMlUV75t1

Kod: Zaznacz cały

The password that was entered is hashed as:
$H$9C5yTFLZyFTZwuJHm/qIGklGcEio5a/
Czyli jak widać zhashowane hasło jest za każdym razem inne. Jak mogę sobie z tym poradzić?
Proszę o pomoc.
Pozdrawiam

bigziomal
Posty: 11
Rejestracja: 20 kwietnia 2010, 20:35

Re: Hashowanie hasła

Post autor: bigziomal » 15 listopada 2011, 11:32

odświeżę temat....

tak samo z tym:

Kod: Zaznacz cały

define('IN_PHPBB', true);
$phpbb_root_path = '../';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
include($phpbb_root_path . 'common.' . $phpEx);

$password = 'haslo';

$hash = phpbb_hash($password);

echo($hash);

if (phpbb_check_hash($password, $hash))
{
   echo(' => $password matches $hash');
} 
za każdym razem co innego wychdzi ..;/ dlaczego ? Nikt nie wie o co chodzi ? Czy tu nie potrzeba jakichś porównań pomocniczych?

Awatar użytkownika
Bielu
Zasłużony
Posty: 512
Rejestracja: 17 marca 2011, 07:49
Kontakt:

Re: Hashowanie hasła

Post autor: Bielu » 07 kwietnia 2012, 13:09

ponieważ funkcja phpbb_hash() dodaje salt:) i dopiero hashuje hasła'
prezentuje się to tak:

Kod: Zaznacz cały

function phpbb_hash($password)
{
    $itoa64 = './0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';

    $random_state = unique_id();
    $random = '';
    $count = 6;

    if (($fh = @fopen('/dev/urandom', 'rb')))
    {
        $random = fread($fh, $count);
        fclose($fh);
    }

    if (strlen($random) < $count)
    {
        $random = '';

        for ($i = 0; $i < $count; $i += 16)
        {
            $random_state = md5(unique_id() . $random_state);
            $random .= pack('H*', md5($random_state));
        }
        $random = substr($random, 0, $count);
    }

    $hash = _hash_crypt_private($password, _hash_gensalt_private($random, $itoa64), $itoa64);

    if (strlen($hash) == 34)
    {
        return $hash;
    }

    return md5($password);
} 

najlepszym rozwiązaniem wg mnie było by dodać nową funkcje np: phpbb_hash2() na podstawie tej wyżej:)
Uwaga! pomoc poza forum jest odpłatna!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Pomogłem? Podziękuj, dając like: https://www.facebook.com/webdeveloperbielu
=====================
Kodowanie styli, modowanie phpbb3 oraz innych skryptów: Webdeveloper Bielu

Zablokowany