Hallo,
wir haben ein in PHP geschriebenes Projekt. Das Login erfolgt über Nutzername und Passwort. In meinem Delphi Projekt soll nun die gleiche Anmeldung erfolgen, weil beide Projekte mit der gleichen Tabelle arbeiten. Mir liegt dazu folgender PHP Quelltext vor:
Damit wird der Hash erzeugt
Code:
public static function bcrypt_encode($password, $global_salt, $rounds='12')
{
if (@CRYPT_BLOWFISH != 1)
{throw new
Exception("CRYPT_BLOWFISH != 1");}
# 22 byte unique random token within symbol-range
$individual_salt = substr(str_shuffle('./0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'), 0, 22);
return crypt(hash_hmac("whirlpool",$password,$global_salt,true),'$2a$'.$rounds.'$'.$individual_salt);
}
Die Abfrage nach dem korrekten Passwort die ich auch durchführen muss.
Code:
public static function bcrypt_check($password, $global_salt, $stored)
{
if (@CRYPT_BLOWFISH != 1)
{throw new
Exception("CRYPT_BLOWFISH != 1");}
return crypt(hash_hmac("whirlpool",$password,$global_salt,true),substr($stored, 0, 30)) == $stored;
}
Mein Problem ist dieser Teil
crypt(hash_hmac("whirlpool",$password,$global_salt,true),substr($stored, 0, 30))
Ich muss an dieser Stelle zugeben, dass meine PHP Kenntnisse sehr dürftig sind. In einem Beitrag habe ich einen Verweis auf units von Wolfgang Ehrhardt gefunden. Ich habe mir den Ordner crc_hash_2010-12-19 heruntergeladen habe aber keinen Plan, wie ich das mit den darin enthaltenen units umsetzen kann.
Bitte um Hilfe.