Russian Qt Forum
Март 28, 2024, 22:46 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: MD5 Строки.  (Прочитано 9847 раз)
max1983
Гость
« : Февраль 15, 2011, 12:21 »

Чот я в этом не силен..
Вот код

Код:

inline QString getMD5(QString source)
{
source = "PASSWORD";
QCryptographicHash md5(QCryptographicHash::Md5);
md5.addData(source.toAscii());
return md5.result().toHex().constData(); //В переменной cod полученный md5-хэш

         }

Возвращает 319f4d26e3c536b5dd871bb2c52e3178
А этот

Код:
inline String ^ getMD5(String ^ input)
{

//Шаг 1 подсчитываем МД5 хеш
MD5 ^ md5Hasher = System::Security::Cryptography::MD5::Create();
array<System::Byte> ^ inputBytes  =  md5Hasher->ComputeHash(Encoding::ASCII->GetBytes(input));
array<System::Byte> ^ hash = md5Hasher->ComputeHash(inputBytes);

//Шаг 2 конвертируем байты в хекс массив строковой
StringBuilder ^ sb = gcnew StringBuilder();
    for (int i = 0; i < hash->Length; i++)
    {
        sb->Append(hash[i].ToString("X2"));
    }

    return sb->ToString();
}

РЕЗУЛЬТАТ - DBCE1D4BCE4B61A085D9D097C4B42F8B

Начальная строка "PASSWORD";
Примеры для QT и VS везде одинаковые а результат разный.
Я так понимаю делают они это разными методами вот и результат разный.
Подскажите кто знает как правильно это сделать.
Записан
Fat-Zer
Гость
« Ответ #1 : Февраль 15, 2011, 13:57 »

qt - правильно считает, а второе это что за язык вообще?
Записан
GreatSnake
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2921



Просмотр профиля
« Ответ #2 : Февраль 15, 2011, 14:06 »

> echo PASSWORD | md5sum
8b04b6229e11c290efd5cd8190aa9261

И кто в итоге прав?
Записан

Qt 5.11/4.8.7 (X11/Win)
Fat-Zer
Гость
« Ответ #3 : Февраль 15, 2011, 14:25 »

так считать нельзя... echo в конец добавляет 0Ah
Записан
GreatSnake
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2921



Просмотр профиля
« Ответ #4 : Февраль 15, 2011, 14:28 »

Цитировать
так считать нельзя... echo в конец добавляет 0Ah
Ваша правда. Забыл -n добавить к echo.
> echo -n PASSWORD | md5sum
319f4d26e3c536b5dd871bb2c52e3178
Записан

Qt 5.11/4.8.7 (X11/Win)
Fat-Zer
Гость
« Ответ #5 : Февраль 15, 2011, 14:37 »

спасибо, не знал об этом ключе
Записан
max1983
Гость
« Ответ #6 : Февраль 15, 2011, 14:50 »

......а второе это что за язык вообще?
C++ .NET CLI

Ну так значит пример микрософта не годится..
Спасибо!
Записан
Fat-Zer
Гость
« Ответ #7 : Февраль 15, 2011, 15:05 »

C++ .NET CLI
на делфи чем-то похож...
Записан
crackedmind
Гость
« Ответ #8 : Февраль 16, 2011, 04:53 »

Код:
array<System::Byte> ^ inputBytes  =  md5Hasher->ComputeHash(Encoding::ASCII->GetBytes(input));
array<System::Byte> ^ hash = md5Hasher->ComputeHash(inputBytes);
дык тут же 2 раза хэш считается, или я чето путаю спросонья? Улыбающийся
Записан
max1983
Гость
« Ответ #9 : Февраль 16, 2011, 10:52 »

дык тут же 2 раза хэш считается, или я чето путаю спросонья? Улыбающийся
Вы абсолютно правы!
В примере приводится хеш хеша а я не обратил на это внимания "думал так надо".
Спасибо.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.052 секунд. Запросов: 22.