2009-03-14 10 views
0

Here est le site. Quiconque connaît ce cours, ma question est la suivante:en utilisant le cryptage blowfish phppas (utilisé par wordpress)

Je vais utiliser la classe trouvée sur cette page pour hacher le mot de passe des membres. La déclaration de code ressemble à ceci

require_once("password.hash.php"); 
$blowfish = new PasswordHash(8, FALSE); 
$blowfish->HashPassword($_POST['password']); 

J'ai remarqué que lorsque le mot de passe est entré dans un champ de texte, dire que j'entrer le mot de passe sarmenhb, le hachage qui est créé ne reste pas le même où comme si je l'avais fait avec md5. J'ai remarqué que le mot de passe change à chaque fois que j'entre sarmenhb.

Comment est-ce que je vérifierais pour voir si le mot de passe entré par l'utilisateur correspond à ce qui est dans la base de données ??

J'ai essayé ce

$blowfish->checkpassword($_POST['password'],"password in db"); 

mais rien ne montre l'écran est vide.

Je le fais en test c'est pourquoi les champs ne sont pas échappés. Je veux juste voir si cela fonctionne, mais je n'obtiens aucun résultat. Y a-t-il une alternative? Ps: Je ne le fais pas pour wordpress, c'est juste localement sur mon propre mvc.

Mise à jour:

J'ai essayé ce

include("classes/hash.class.php"); 

$sec = new PasswordHash(8, FALSE); 
$correct = "sarmenhb"; 
//pass generated from $sec->HashPassword($correct); 
$hash = "\$P$\BeJb51gIUh8Qmb1DAW.Hkt1I4gnm2C1"; 
$check = $sec->CheckPassword($correct, $hash); 

if($check) { print "correct"; } 
else { print "incorrect"; } 

et quand je le lance la sortie continue d'afficher incorrecte.

+0

Plus de détails aide ;-) –

Répondre

1

Dans la variable de hachage, vous avez les barres obliques pour échapper le $ mais ces barres font alors partie de la chaîne réelle lorsque le hachage vérifie que $ P $ est les 3 premiers caractères de la chaîne. Si vous changez à des guillemets simples et de supprimer les barres obliques, il fonctionnera

$hash = '$P$BeJb51gIUh8Qmb1DAW.Hkt1I4gnm2C1';

Je suis un peu confus mais en vous disant rien ne montre quand faire blowfish- $> checkpassword ($ _ POST [ « password » ], "mot de passe dans db"), bien sûr rien ne le montrera, il renvoie vrai ou faux mais il n'imprimera rien à moins d'être combiné avec plus de code. Assurez-vous que le mot de passe stocké dans la base de données n'est pas échappé ou modifié sous une forme quelconque. Essayez d'imprimer la variable que vous utilisez pour cela?

Le mot de passe haché ne reste pas le même parce qu'il est salé à chaque fois qu'il est utilisé, c'est ok parce que le hachage contient le sel où il peut être trouvé plus tard pour comparer. Les sels sont juste des caractères aléatoires/nombres/symboles pour ajouter plus de variance au hachage pour le rendre difficile à casser. Que diriez-vous de quelques exemples d'entrées et sorties réelles?

Questions connexes