ich meine alten Code zurück aus dem Jahr 2011 haben die Hash-mcrypt_encrypt(): Schlüssel der Größe 29 nicht durch diesen Algorithmus unterstützt
private static $key = '[email protected]#€2011GAMESITES';
/**
* Computes salted password hash.
* @param string
* @return string
*/
public static function calculateHash($password)
{
$text = $password;
$iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB);
$iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);
$crypttext = mcrypt_encrypt(MCRYPT_RIJNDAEL_256, self::$key, $text, MCRYPT_MODE_ECB, $iv);
return base64_encode($crypttext);
}
berechnen Wenn ich versuche, es zu laufen jetzt bekomme ich einen Fehler:
Warning: mcrypt_encrypt(): Key of size 29 not supported by this algorithm. Only keys of sizes 16, 24 or 32 supported in ..\Hash.php on line 27
Ich weiß, dass es eine lange Zeit von 2011 dauert und es kann bessere Möglichkeiten geben, es jetzt zu tun, aber ich muss es aus früheren Version für ein historisches Problem arbeiten lassen. Was mache ich falsch? Ich kann nicht einmal sehen, welche Größe 29 es bedeutet.
Oder gibt es alternativ eine Möglichkeit, einen Hash zu brechen, wenn ich noch eine Funktion habe? mit diesem kann ich potencialy anfangen, die neue Art zu verwenden, Hash zu berechnen.
Vielen Dank für jeden raten
Siehe die Antwort in http://stackoverflow.com/questions/31125545/mcrypt-encrypt-key-of-size. – mattias
Um Passwort-Hashes in Zukunft zu implementieren: erfinden Sie es nicht selbst, sondern verwenden Sie dafür eine bestehende und gut recherchierte [KDF] (https://en.wikipedia.org/wiki/Key_derivation_function). Ein gutes Beispiel wäre 'bcrypt', das durch die PHPs [' password_hash'] (http://php.net/manual/en/function.password-hash.php) und ['password_verify'] unterstützt wird (http://php.net/manual/en/function.password-verify.php). –