Normalement, si j'ai un mot de passe, je voudrais utiliser ce pseudo-code:Comment l'argument sel et la valeur de retour de la fonction crypt() de PHP fonctionnent-ils?
$password = "this is the user's password";
/***/
$salt = GenerateSalt();
$hash = Hash($password);
$hash = Hash($hash . $salt);
Cependant, si je comprends bien, PHP a une fonction crypt()
qui prend un sel ainsi que le nombre d'itérations d'un algorithme particulier. Apparemment, vous êtes supposé passer le hachage retourné de crypt
encrypt
comme le sel. Je ne comprends pas cela.
Quelqu'un peut-il clarifier comment fonctionne la crypte? Est-ce que je dois encore ajouter mon propre sel et ressasser? Dans ce cas, est-ce que j'utiliserais juste un sel fixe pour la crypte, et ensuite générerais une crypte séparée pour chaque utilisateur? Ou le paramètre $salt
de crypt s'en occupe-t-il pour moi?
Veuillez noter que vous devriez * PHP's ['crypt'] (http: // us2. php.net/manual/fr/function.crypt.php) ne peut pas être utilisé avant la version 5.3 *. Vous voulez toujours utiliser les préfixes '$ 2a $', '$ 5 $' ou '$ 6 $' pour obtenir respectivement Blowfish, SHA-256 ou SHA-512, et ceux-ci ne sont pas garantis dans les versions antérieures. Veuillez lire la page de manuel pour plus de détails. – Charles
Sachez également que crypt est cassé dans PHP 5.3.7 pour MD5. Ils viennent de sortir le correctif 5.3.8 –