2010-12-02 31 views
2

J'utilise un script php qui utilise les mots de passe en utilisant la crypt de php et utilise SHA512, mais lorsque j'essaie de vérifier si SHA512 est activé, j'obtiens l'erreur ci-dessus. Bien sûr, je sais pourquoi je reçois cette erreur .. php manque de dépendance. Je ne sais pas quelle est cette dépendance.Utilisation de la constante indéfinie CRYPT_SHA512

Quelqu'un peut-il me dire ce que j'ai besoin d'installer (sur un serveur Ubuntu) pour pouvoir utiliser SHA512 en PHP?

Merci!

Répondre

2

Les docs PHP disent que le support intégré pour SHA-256 et SHA-512 a été ajouté en PHP 5.3.2. Si vous utilisez des versions antérieures de PHP, il repose sur des implémentations de ces algorithmes fournis par votre système, ce que votre système n'a apparemment pas.

+0

Merci, c'était exactement ça. – Naatan

0

Assurez-vous que vous avez toute dernière version de PHP5 et d'installer mcrypt - contient également beaucoup d'autres méthodes de cryptage comme rinjdael (AES)

+0

les mots de passe doivent être hachés (unidirectionnels) non cryptés – Ozzy

0

Bottom line, vous devez utiliser mcrypt, pas SHA512 ou tout Hasher style md5. C'est trop facile à force brute de les déchiffrer. Il y a une tonne de bonne référence au http://www.php.net/manual/en/function.mcrypt-generic.php et partout google. Voici un exemple d'une URL en utilisant la 3DES hashed urlsafe_b64encode fonction de référence de 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

Cela ne semble pas vraiment s'appliquer aux mots de passe, qui ne sont pas censés être décryptables. – Naatan