2010-12-02 5 views
2

Ich benutze ein PHP-Skript, das Passwörter mit PHP Krypta Hashes und SHA512 verwendet, aber wenn ich versuche zu überprüfen, ob SHA512 gesetzt ist, bekomme ich den obigen Fehler. Natürlich weiß ich, warum ich diesen Fehler bekomme .. php fehlt einige Abhängigkeit. Ich weiß nur nicht, was diese Abhängigkeit ist.Verwendung von undefinierten Konstante CRYPT_SHA512

Kann mir bitte jemand sagen, was ich installieren muss (auf einem Ubuntu-Server), um SHA512 in PHP verwenden zu können?

Danke!

Antwort

2

Die PHP-Dokumente sagen, dass die integrierte Unterstützung für SHA-256 und SHA-512 in PHP 5.3.2 hinzugefügt wurde. Wenn Sie frühere Versionen von PHP verwenden, stützt es sich auf Implementierungen der von Ihrem System bereitgestellten Algorithmen, die Ihr System offensichtlich nicht besitzt.

+0

Dank Verwendung war, dass es genau. – Naatan

0

Stellen Sie sicher, neueste Version von PHP5 haben und mcrypt installieren - auch eine Menge anderer Verschlüsselungsmethoden wie rinjdael enthält (AES)

+0

Passwörter sollten hashed (one-way) nicht verschlüsselt werden – Ozzy

0

Unterm Strich sollten Sie mcrypt verwenden, nicht SHA512 oder jeden Hasher md5 Stils. Es ist zu leicht, sie mit Gewalt zu entschlüsseln. Es gibt eine Tonne guter Referenz bei http://www.php.net/manual/en/function.mcrypt-generic.php und überall auf Google. Im Folgenden finden Sie ein Beispiel für eine Hash-URL 3DES der Referenzfunktion urlsafe_b64encode von http://www.php.net/manual/en/function.mcrypt-generic.php#71135

$key = "what can i tell you"; 
$request = http_build_query($_REQUEST); 
$request_enc = urlencode(urlsafe_b64encode(mcrypt_ecb(MCRYPT_3DES, $key, $request, MCRYPT_ENCRYPT))); 
$url = "http://localhost/takemerightthere/".$request_enc; 
+0

Das scheint nicht wirklich für Passwörter zu gelten, die nicht entschlüsselt werden sollen. – Naatan