Question

J'ai mis mon serveur de messagerie comme Dicté ici .

Il fonctionne parfaitement bien. Mon Curiousity tourne autour de l'entrée des utilisateurs dans la base de données et de les authentifier

Exécution:

INSERT INTO users (email, password) VALUES ('sales@example.com', ENCRYPT('password'));

Plusieurs fois donneront un hachage différent pour le mot de passe crypté comme l'utilisation d'un sel aléatoire. C'est à dire. Si j'entre sales@example.com trois fois avec le même mot de passe chaque hachage est différent ...

Ma question à ce, comment est-ce que le serveur Postfix peut effectivement authentifier le mot de passe lorsqu'un utilisateur se connecte via un client de messagerie?

Il n'y a pas de problème par exemple car il fonctionne très bien, plus juste pour satisfaire ma curiosité pour que je puisse bien comprendre ce qui se passe dans les coulisses pour authentifier correctement le mot de passe crypté.

Était-ce utile?

La solution

Lire la crypte de l'homme:. Elle retourne le sel dans les deux premiers caractères de la valeur de retour

Ainsi, le sel ne soit pas perdu, vous pouvez comparer la chaîne cryptée au résultat de la crypte ( « pass », $ first_two_chars_of_encrypted_value).

Autres conseils

Postfix compare le mot de passe de la base de données à un nouveau Crypter fait avec le sel (mot de passe db).

pour Crypter:

update user set password = ENCRYPT('1234') where id = 1

pour vérifier le mot de passe:

SELECT u.* FROM user u where u.email ='admin@dominio.com' 
and ENCRYPT('1234', u.password) = u.password

Vous devez utiliser ENCRYPT ( « pass », « sel ») pour forcer un sel, sinon le sel est perdu à jamais et vous avez aucun moyen de le récupérer. fonction assez inutile sans elle. Il est une terrible fonction à utiliser, cependant, parce que la sécurité est si minime; utilisation PASSWORD () ou OLD_PASSWORD () à la place.

ENCRYPT () utilise la crypte du système (), qui peut utiliser la totalité ou seulement les 8 premiers caractères doivent être imprimables ASCII 7 bits, utilise généralement une tour de hachage à base de DES, et est complètement non portable. A éviter.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top