2010-04-01 4 views
2

J'ai actuellement une base de données SQL de mots de passe stockés dans MD5. Le serveur doit générer une clé unique, puis envoie au client. Dans le client, il utilisera la clé comme un sel puis hacher avec le mot de passe et renvoyer au serveur.Autorisation du serveur avec MD5 et SQL

Le seul problème est que la base de données SQL a déjà les mots de passe dans MD5. Par conséquent pour que cela fonctionne, je devrais MD5 le côté de client de mot de passe, puis MD5 encore avec le sel. Est-ce que je fais cela mal, parce que cela ne semble pas être une bonne solution? Toute information est appréciée.

Répondre

1

Vous devez utiliser SSL pour crypter la connexion, puis envoyer le mot de passe sur le texte brut du client. Le serveur md5 puis comparer avec le hachage md5 dans la base de données pour voir si elles sont les mêmes. Si oui, auth = success. MD5 en utilisant le mot de passe sur le client ne vous achète rien parce qu'un pirate avec le mot de passe md5 peut être aussi facile que si c'était en texte brut.

+0

La question n'est pas de * MD5'ing le mot de passe sur le client pour augmenter la sécurité *. C'est clairement inutile. Il semble que l'affiche veut utiliser un [Crce nonce] (http://en.wikipedia.org/wiki/Cryptographic_nonce) pour implémenter l'authentification sécurisée. Le problème est que cela nécessite normalement à la fois l'utilisateur et le serveur de connaître le mot de passe. Donc la question est vraiment * puisque le serveur ne stocke déjà que les mots de passe de hash le mot de passe sur le client rendrait possible d'utiliser un nonce? * Mais alors je suis d'accord pour utiliser SSL en beaucoup plus simple et sécurisé. –

0

Ce n'est pas tout à fait clair pour moi ce que vous demandez, mais python hashlib (lire la FAQ) et wikipedia devrait vous rendre là où vous allez.

Pour un exemple réel en python, vérifiez django authentication (la source).