phpBB3 hash passwort

Hi,

folgendes Problem will mir mit einem externen script ohne auf functionen vom phpbb3 Forum zugreifen zu müssen ein phpbb3 taugliches passwort hashwert erstellen!

Da phpbb3 mit MD5() und einem SALT funktioniert hab ich schon etliche kombinationen ausprobiert komm aber einfach nicht drauf wie das passwort im phpbb3 erzeugt wird hab mich auch schon durch die functionen gequält aber das wird einfach nichts…

hier mal der orginal code von phpbb3 ich denke diese funktion ist für die bildung verantwortlich nur wie bau ich diese jetzt um das mir in einer externen php datei ein passwort erzeugt wird?

ORGINAL phpBB3 CODE

[code] 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);
} [/code]

MEIN VERSUCH


<?
$password = "123456";

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);
    } 
echo $hash;
?>

Zusammenfassung deines Versuches: Du hast die Funktion 1:1 kopiert und ein echo drangehängt, dass eine nicht-existente Variable ausgibt.

Für einen Versuch musst du die Funktion auch wirklich aufrufen. Außerdem musst du alle Funktionen mitkopieren, die von dieser Funktion wiederum benutzt werden. Das sind z. B. unique_id(), _hash_crypt_private() und _hash_gensalt_private().

Ach ja, natürlich musst du auch alle Funktionen kopieren, die von diesen Funktionen aufgerufen werden.

Danke dir scram,

hab mich in den letzten tagen mal in den functions bereich von php eingelesen und versteh das jetzt besser (solche functionen sind ja total nützlich) aber da ich das phpbb3 board mit meinem gerade im aufbau befindenden Internetpräsenz verknüpfen möchte hab ich die salt functionen nun aus dem code verbannt und erstelle mit md5() einen ganz normalen hash ohne salt! :ps:

Ich hätt da aber noch eine kleine Frage gibt es ein tool nach Möglichkeit freeware mit der man sich eine aktuelle aktive session anzeigen kann also die daten wo momentan in der session gespeichert sind z.B. Benutzername sessionID?

Hab den sessionmanager für den firefox probiert aber der hilft mir eigentlich nicht wirklich… !haue

Du kannst dir mit einem beliebigen Cookie-Manager (es gibt ja genügend, z. B. auf addons.mozilla.org) die Cookies anschauen, aber die Daten in einer Session bekommst du nie zu Gesicht. Das ist ja der Sinn des Ganzen.

achso ich dachte immer das man seine eigene session irgendwie auslesen lassen kann :susp:

Danke werd mir mal mit einem Cookie-Manager das ganze ansehen :wink:

Wie schon gesagt ist der Sinn der Sessions, dass der User seine Daten nicht manipulieren kann. Der User bekommt nur seine ID, die der Browser dann sendet, die dazugehörigen Daten liegen auf dem Server.

Du könntest aber ein Script auf dem Server erstellen, das $_SESSION mit var_dump() ausgibt (vielleicht mit einem Passwort gesichert). Klappt natürlich nur, wenn wir hier noch über deinen Webspace reden. :wink:

Klar reden wir über mein Webspace!

werd ich mal probieren Danke dir scram