Bonjour,
Je voudrais comprendre comment fonctionne la fonction crypt(), que j'utilise (sans problème) pour protéger les mots de passe stockés dans .htpasswd :
utilisateur:motdepasse_crypté
L'accès au site est contrôlé via .htaccess par instructions de type :
AuthName "Message"
AuthType Basic
AuthUserFile "/repertoire/.htpasswd"
Require valid-user
Si - pour obtenit le motdepasse_crypté que je vais stocker dans htpasswd - j'utilise crypt() avec un sel, j'obtiens un chiffrement qui commencent par le sel. Dès lors je comprends comment le système peut fonctionner : le serveur lit le mot de passe entré par utilisateur, calcule motdepasse_crypté puis le compare à celui-ci stocké dans htpasswd. En effet, utilisé avec un sel, crypt() donne toujours le même résultat.
Mais utilisé sans sel, crypt() donne un résultat différent chaque fois qu'on l'applique sur un même mot de passe. Et pourtant dans ce cas, je constate que le serveur arrive pourtant à vérifier si le mot de passe entré par l'utilisateur est bien celui encrypté dans htpasswd !
Comment cela est-il possible ?
