Импорт паролей MD5 из приложения PHP в ASP.NET - PullRequest
1 голос
/ 21 октября 2010

Итак, я нахожусь в процессе написания приложения ASP.NET, которое требует импортировать пользователей из приложения PHP. Пароли были хешированы с использованием MD5 в базу данных, поэтому записи в таблице пользователей выглядят примерно так:

Пароль пользователя

user1 827ccb0eea8a706c4c34a16891f84e7b

user2 e10adc3949ba59abbe56e057f20f883e

И так далее. У меня есть доступ к исходному коду PHP, и я вижу, что нет соли или чего-то еще, это просто прямое приложение MD5. Теперь, вернувшись в свой ASP.NET, я попытался использовать MD5, используя следующую логику:

public static string HashPassword(string Password)
    {
        //Declarations
        Byte[] originalBytes;
        Byte[] encodedBytes;            
        MD5 md5;

        originalBytes = ASCIIEncoding.Default.GetBytes(Password);            
        md5 = new MD5CryptoServiceProvider();
        encodedBytes = md5.ComputeHash(originalBytes);                                 

        return BitConverter.ToString(encodedBytes);
    }

Проблема в том, что возвращается строка типа 50-F8-4D-AF-3A-6D-FD-6A-9F-20-C9-F8-EF-42-89-42, которая, конечно, не собирается сопоставить с информацией в базе данных. Что мне делать, чтобы мне не пришлось сбрасывать 500+ пользовательских паролей?

1 Ответ

0 голосов
/ 21 октября 2010

Верните это вместо:

return Encoding.UTF8.GetString(encodedBytes).ToLowerInvariant();

BitConverter явно вставляет тире в строковое значение.

Или, конечно, вы можете продолжать использовать BitConverter и просто сделать .Replace("-","").ToLower()

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...