Мога ли да конвертирам ASCII MD5 хеширана парола в Unicode MD5 хеширана парола?

Търся помощ за конвертиране на ASCII MD5 хеширана парола в Unicode MD5 хеширана парола?

Например ще използвам низа "парола".

Когато се преобразува в масив от байтове ascii, получавам кодиран в base64 хеш на X03MO1qnZdYdgyfeuILPmQ== Когато се преобразува в масив от байтове в unicode, получавам кодиран в base64 хеш на sIHb6F4ew//D1OfQInQAzQ==

Всичките ми пароли се съхраняват в md5 хеш, който е приложен към ascii байтов масив, но се опитвам да мигрирам потребителските данни на моето приложение към система, която съхранява паролата в md5 хеш, който е приложен към unicode байтов масив.

В случай, че не е ясно, със следния C#код:

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

Текущата ми система използва това, но системата, към която преминавам, има различен първи ред. Той използва Encoding.Unicode.GetBytes.

Някой знае ли как мога да конвертирам паролите си? от

X03MO1qnZdYdgyfeuILPmQ==

в

sIHb6F4ew//D1OfQInQAzQ==

Предполагам, че отговорът е, че не мога.. кодирането се извършва преди хеширането, но реших да попитам светлите умове на stackoverflow и да видя дали някой има начин.


person Community    schedule 25.04.2010    source източник


Отговори (3)


Можете ли да използвате UTF-8? Ако е така, това решава проблема ви, тъй като Unicode, кодиран в UTF-8 и ASCII, ще има същия MD5 хеш. (Ако приемем, че когато се позовавате на ASCII, вие се позовавате на по-ниските седем бита).

Като алтернатива можете да създадете уникод хеш, да проверите дали работи и дали не опитате с ASCII хеш.

person Clarus    schedule 25.04.2010

Не, не можеш. md5 е еднопосочна операция, не можете да извадите нищо от хеша по отношение на оригиналния низ.

person Femaref    schedule 25.04.2010

Това не отговаря директно на въпроса ви, но едно от решенията на проблема, който имате (миграцията), е да преобразувате въведените пароли в масив от байтове ascii преди хеширане с новата система. Това е малко хак, но трябва да работи. може да работи в зависимост от спецификата на вашата ситуация.

person Cam    schedule 25.04.2010