2010-04-25 11 views
1

Je suis à la recherche d'aide pour convertir un mot de passe hashed ASCII MD5 en un mot de passe haché MD5 Unicode? Par exemple, je vais utiliser la chaîne "mot de passe".Puis-je convertir un mot de passe haché ASCII MD5 en un mot de passe haché Unicode MD5?

Quand il est converti en un tableau d'octets ascii, je reçois un hachage codé en base64 de X03MO1qnZdYdgyfeuILPmQ == Quand il est converti en un tableau d'octets unicode, je reçois un hachage codé en base64 de sIHb6F4ew // D1OfQInQAzQ ==

Tous mes mots de passe sont stockés dans un hachage md5 qui a été appliqué à un tableau d'octets ascii, mais j'essaie de migrer les données utilisateur de mon application vers un système qui stocke le mot de passe dans un hachage md5 appliqué un tableau d'octets unicode.

Dans le cas où on ne sait pas, avec le code C# suivant:

var passwordBytes = Encoding.ASCII.GetBytes("password"); 
var hashAlgorithm = HashAlgorithm.Create("MD5"); 
var hashBytes = hashAlgorithm.ComputeHash(passwordBytes); 

Mon système actuel utilise, mais le système que je me déplace à a une autre première ligne. Il utilise Encoding.Unicode.GetBytes.

Est-ce que quelqu'un sait comment je peux convertir mes mots de passe? De

X03MO1qnZdYdgyfeuILPmQ== 

dans

sIHb6F4ew//D1OfQInQAzQ== 

Je devine que la réponse est que je ne peux pas .. l'encodage est fait avant le hachage, mais je pensais que j'enquiers les esprits brillants de stackoverflow et voir si quelqu'un a un moyen.

Répondre

8

Pouvez-vous utiliser UTF-8? Si c'est le cas, il résout votre problème car Unicode est encodé en UTF-8 et ASCII aurait le même hachage MD5. (En supposant que lorsque vous faites référence à ASCII, vous faites référence aux sept bits inférieurs). Alternativement, vous pouvez créer un hachage Unicode, vérifier si cela fonctionne, et s'il n'essaie pas un hachage ASCII.

3

Non, vous ne pouvez pas. md5 est une opération à sens unique, vous ne pouvez rien déduire du hachage qui contient la chaîne d'origine.

0

Cela ne répond pas à votre question directement, mais une solution au problème vous avez (la migration) est de convertir les mots de passe entrés en un tableau d'octets ASCII avant de hacher avec le nouveau système. C'est un peu un hack, mais devrait fonctionner. peut fonctionner en fonction des spécificités de votre situation.

Questions connexes