powered by simpleCommunicator - 2.0.41     © 2025 Programmizd 02
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Расчёт MD5 с использованием .Net Framework и API "cryptdll.dll" даёт разные результаты
19 сообщений из 19, страница 1 из 1
Расчёт MD5 с использованием .Net Framework и API "cryptdll.dll" даёт разные результаты
    #39738982
Фотография Joss
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мне предложили вместо паролей хранить в базе их хэши. Начал копать в сторону MD5.

Столкнулся с тем, что вот здесь примеры и библиотеки, выложенные здесь Получение MD5 хэша в VBA и здесь Вычисление MD5 строки из Microsoft Access (текст на VB здесь ) дают разные значения MD5.

Текст - "текстовая строка"
Вариант .Net Framework
Код: plaintext
812c4f7fb1ccc1aebe7802dced6c4d67
Вариант API "cryptdll.dll"
Код: plaintext
9551104F79B49AAB8C58F726BD622B18

Может кто-нибудь пояснит, в чём дело?

Более подробно о проблеме тут Получение MD5 хэша в VBA




-------------------------------------------------------------
А ты вложил уже свой кровный рубль в 50-ти миллиардное состояние Билла Гейтса?
...
Рейтинг: 0 / 0
Расчёт MD5 с использованием .Net Framework и API "cryptdll.dll" даёт разные результаты
    #39739053
Фотография Joss
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Попробовал онлайн сервис https://pr-cy.ru/md5/?
Так он дал совсем иное значение
Код: plaintext
4c2cea5157d9d3d2547d0f49a52fa7ed
Чему верить?

а вот этот сервис https://www.decodeit.ru/md5/ даёт результат сходный с первым
Код: plaintext
812c4f7fb1ccc1aebe7802dced6c4d67

Проверочный текст тот же "текстовая строка" - кавычки не кодируются
...
Рейтинг: 0 / 0
Расчёт MD5 с использованием .Net Framework и API "cryptdll.dll" даёт разные результаты
    #39739068
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Joss, Notepad++
812c4f7fb1ccc1aebe7802dced6c4d67
...
Рейтинг: 0 / 0
Расчёт MD5 с использованием .Net Framework и API "cryptdll.dll" даёт разные результаты
    #39739115
Фотография vmag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JossМне предложили вместо паролей хранить в базе их хэши.

В принципе все эти хеши для серьезных случаев не комильфо, особенно если они еще и дают одинаковый результат...
Похоже по формату хеша можно определить и используемый алгоритм...
Простые пароли методом подбора и атакой по словарю будут щёлкаться на раз-два...
Если я знаю алгоритм хеша и выход (то, что лежит в БД), то взлом входа - стандартная процедура:
- подбор входа по алгоритму хеша до момента получения хеша, хранимого в БД...

Думаю более продуктивным будет использование нестандартного неизвестного алгоритма,
ну например алгоритма контрольной суммы с вероятностью совпадения от 50 000 вариантов
и более, тогда вместо пароля (и любого текста любой длины) будет типа 1CFE3 и в этом случае вообще не понятно что с этим делать... не зная алгоритма контрольного суммирования- задачу подбора пароля не решить...

Так что различие в результатах разных хешей ИМХО это не зло на самом деле, а добро...
...
Рейтинг: 0 / 0
Расчёт MD5 с использованием .Net Framework и API "cryptdll.dll" даёт разные результаты
    #39739116
Predeclared
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А правильное ли решение пользовать сторонние алгоритмы?
Не получится ли злой случай, когда с очередным обновлением
получим новую спецификацию без обратной совместимости?
...
Рейтинг: 0 / 0
Расчёт MD5 с использованием .Net Framework и API "cryptdll.dll" даёт разные результаты
    #39739177
Фотография Joss
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PredeclaredА правильное ли решение пользовать сторонние алгоритмы?
Не получится ли злой случай, когда с очередным обновлением
получим новую спецификацию без обратной совместимости?
... Известный криптограф Брюс Шнайер в книге «Секреты и ложь» пишет: «Любой, кто создает собственный образец шифрования, — либо гений, либо глупец». ...
...
Рейтинг: 0 / 0
Расчёт MD5 с использованием .Net Framework и API "cryptdll.dll" даёт разные результаты
    #39739192
Фотография Joss
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПанургJoss, Notepad++
812c4f7fb1ccc1aebe7802dced6c4d67 А вот Total Commander выдаёт
Код: plaintext
9551104f79b49aab8c58f726bd622b18
что соответствует второму варианту (ну если маленькие буквы заменить большими.
Код: plaintext
9551104F79B49AAB8C58F726BD622B18
...
Рейтинг: 0 / 0
Расчёт MD5 с использованием .Net Framework и API "cryptdll.dll" даёт разные результаты
    #39739201
Фотография vmag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PredeclaredА правильное ли решение пользовать сторонние алгоритмы?
Не получится ли злой случай, когда с очередным обновлением
получим новую спецификацию без обратной совместимости?

ну и по этому тоже, - лучше использовать своё, а если уж и чужое, то не в библиотеках, а в своих модулях чтоб не зависеть от обновлений...
...
Рейтинг: 0 / 0
Расчёт MD5 с использованием .Net Framework и API "cryptdll.dll" даёт разные результаты
    #39739202
Фотография Joss
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Predeclared, На смену MD5 уже пришел SHA-2. MD5 ломается за приемлемое время на обычном компьютере.

Вот исходные коды класса clsMD5 для VB (VBA) и пример работы с библиотекой crypt.dll Пример довольно старый, аж 2000 года, но на Windows 7 32bit всё работает.

И не надо использовать сторонние библиотеки. Код включается в программу и меняться не будет.

Образец кода соответствует второму варианту MD5.

Меня интересует - почему два разных результата? Ведь алгоритм вроде как один и тот же
...
Рейтинг: 0 / 0
Расчёт MD5 с использованием .Net Framework и API "cryptdll.dll" даёт разные результаты
    #39739206
Фотография Joss
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ИМХО. Если злоумышленник добрался до таблиц, то хранение хэшей вместо паролей его не остановит. Он просто может подменить в таблице один хэш на другой известного пароля. Кроме того есть онлайн сервисы по восстановлению паролей.
...
Рейтинг: 0 / 0
Расчёт MD5 с использованием .Net Framework и API "cryptdll.dll" даёт разные результаты
    #39739212
Predeclared
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JossPredeclaredА правильное ли решение пользовать сторонние алгоритмы?
Не получится ли злой случай, когда с очередным обновлением
получим новую спецификацию без обратной совместимости?
... Известный криптограф Брюс Шнайер в книге «Секреты и ложь» пишет: «Любой, кто создает собственный образец шифрования, — либо гений, либо глупец». ...
Мне более симпатична мысль местного мембера (выделена красным):
7267154
...
Рейтинг: 0 / 0
Расчёт MD5 с использованием .Net Framework и API "cryptdll.dll" даёт разные результаты
    #39739231
MrShin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да бросьте вы! Какой нафиг взлом хеша? Данные в акцессовской таблице практически невозможно надежно защитить
...
Рейтинг: 0 / 0
Расчёт MD5 с использованием .Net Framework и API "cryptdll.dll" даёт разные результаты
    #39739237
Фотография Joss
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MrShinДа бросьте вы! Какой нафиг взлом хеша? Данные в акцессовской таблице практически невозможно надежно защитить А давайте не будем здесь о защите информации в Access. Для этого есть отдельные топики и Вас , MrShin, я там не видел.
...
Рейтинг: 0 / 0
Расчёт MD5 с использованием .Net Framework и API "cryptdll.dll" даёт разные результаты
    #39739244
Predeclared
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MrShinДа бросьте вы! Какой нафиг взлом хеша? Данные в акцессовской таблице практически невозможно надежно защитить
Данных, которые необходимо надежно защищать, в "акцессовской таблице" быть не должно априори.
Но это не значит, что остальные данные не нужно оберегать от элементарной глупости.
...
Рейтинг: 0 / 0
Расчёт MD5 с использованием .Net Framework и API "cryptdll.dll" даёт разные результаты
    #39739251
MrShin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JossА давайте не будем здесь о защите информации в Access
О, пардон, это уже отдельный топик, а не про модуль авторизации, не обратил внимания.
...
Рейтинг: 0 / 0
Расчёт MD5 с использованием .Net Framework и API "cryptdll.dll" даёт разные результаты
    #39739263
Фотография Joss
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MrShinО, пардон, это уже отдельный топик, а не про модуль авторизации, не обратил внимания. вообще-то это даже и не про модуль авторизации.
...
Рейтинг: 0 / 0
Расчёт MD5 с использованием .Net Framework и API "cryptdll.dll" даёт разные результаты
    #39739511
Озверин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Joss, не вдаваясь в алгоритм - соль разная?
Почитайте тут, а потом посмотрите на генерацию хеша:

http://www.itlessons.info/php/hash-password-by-md5-and-salt/
...
Рейтинг: 0 / 0
Расчёт MD5 с использованием .Net Framework и API "cryptdll.dll" даёт разные результаты
    #39739533
Фотография Joss
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нет, тут дело похоже в другом. И проще и сложнее.

Когда я перевёл текст в UFT-8 и прогнал через Total Commander, то значение стало таким, как в первом варианте. Т.е. одна библиотека автоматически преобразует строку в UFT-8 (или определяет формат, а потом преобразует), а другой кодирует без преобразования.

Я заносил текст в среде разработки VBA. Она одинаковая для Excel, Word, Access. И похоже Win-1251.
...
Рейтинг: 0 / 0
Расчёт MD5 с использованием .Net Framework и API "cryptdll.dll" даёт разные результаты
    #39739847
Фотография Joss
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо Andy_OLAP за подсказку. В одном (первом) случае перед вызовом функции хэширования стоит вызов функции конвертирования исходной строки в UTF-8. А в другом случае вызов конвертирование отсутствует. Вот и весь затык.
...
Рейтинг: 0 / 0
19 сообщений из 19, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Расчёт MD5 с использованием .Net Framework и API "cryptdll.dll" даёт разные результаты
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]