Voici l'exemple de la PHP manual page for crypt():(PHP) Comment implémenter correctement crypt()
<?php
$password = crypt('mypassword'); // let the salt be automatically generated
/* You should pass the entire results of crypt() as the salt for comparing a
password, to avoid problems when different hashing algorithms are used. (As
it says above, standard DES-based password hashing uses a 2-character salt,
but MD5-based hashing uses 12.) */
if (crypt($user_input, $password) == $password) {
echo "Password verified!";
}
?>
Pourquoi ce travail? Je le prends 'mypassword'
est le mot de passe que je veux l'administrateur à utiliser. Donc, je crypte ce premier, et le mettre égal à $password
. Évidemment, je dois devoir stocker cela dans la DB. Mais dans les lignes suivantes, il est utilisé à la fois comme le sel et ce que je compare, et je ne comprends pas comment crypt($user_input, $password)
peut être égal à $password
, si dans ce dernier cas, j'ai idéalement le bon mot de passe comme $user_input
mais salé avec $password
étant comparé à $password
. Cela aurait plus de sens pour moi si la dernière ligne était
if (crypt($user_input) == $password) {
echo "Password verified!";
}
Qu'est-ce que je ne comprends pas?
vous devriez utiliser des techniques plus avancées telles que md5, sha1, etc. – dusoft
hah. Hé. Hé. hahah. si seulement vous étiez sur ce voyage épique avec moi mon ami. http://stackoverflow.com/questions/2235158/php-sha1-vs-md5-vs-sha256-which-to-use-for-a-php-login – sepiroth