2011-01-10 6 views
0

Nous avons une application distribuée et une table db avec les utilisateurs. Leurs mots de passe seront stockés en tant que valeurs de hachage. L'application consiste en des services win, winforms, asp et java. L'un des développeurs Java a une fonction qui calcule md5 hash pour la chaîne (avec clé codée en dur) et propose de l'utiliser partout ailleurs (ce qui signifie importer le code java en C# et multiplier sur les applications qui en ont besoin). Est-ce une bonne idée? Quelles seraient vos suggestions et que font habituellement les gens dans de tels cas?Application distribuée, hash de mot de passe

P.S. Nous utilisons Oracle db.

+0

version et édition d'Oracle (9i Standard, 11g Enterprise, etc.)? – APC

+0

Oracle 9. Mais j'aimerais savoir s'il existe un moyen unifié de le calculer, donc toutes les applications le réutilisent. – Nickolodeon

+1

Ne pas oublier d'ajouter du sel. http://en.wikipedia.org/wiki/Salt_%28cryptography%29 –

Répondre

1

vous pourriez avoir toutes les applications transmettent le mot de passe à la DB et avoir une procédure stockée dans la base de données qui vérifie le mot de passe donné par rapport au hachage stocké.

Il y a une fonction standard PL/SQL pour le calcul de hash: DBMS_OBFUSCATION_TOOLKIT.MD5

Vous pouvez trouver une écriture plus complète de cette méthode ici: http://www.oracle-base.com/articles/9i/StoringPasswordsInTheDatabase9i.php

1

Md5 N'a pas vraiment de clé, car c'est un hachage pas un cryptage. Le hachage Md5 est intégré à Java et à C#.

De quel code un corps a-t-il besoin pour écrire? Il ya au plus quelques lignes dans chaque langue de mise en œuvre ... plus une poignée de tests pour vérifier que tout le monde arrive avec les mêmes résultats, capitalisation, etc

+0

Je ne suis pas sûr de la fonction qu'il utilise (peut-être pas MD5), je sais seulement qu'il calcule hash et il est écrit à la main. – Nickolodeon

+1

Je ne peux pas recommander d'écrire (ou plutôt - s'il vous plaît ne pas écrire) votre propre fonction de hachage (comme pour un mot de passe/résumé). Utilisez un standard. Et si vous utilisez un standard, utilisez l'implémentation qui est déjà intégrée dans votre langue. – time4tea

Questions connexes