создание md5 файлов

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

smith7
новенький
Сообщения: 11
Зарегистрирован: 17.07.2013 06:05:33

создание md5 файлов

Сообщение smith7 »

Есть такой код
j := 1;
sd := TSelectDirectoryDialog.Create(Application);
sd.InitialDir := 'd:\base\2013\in\';
if sd.Execute then
path := UTF8ToSys(sd.FileName);
FreeAndNil(sd);

if FindFirst(path + DirectorySeparator + '*.dbf', faAnyFile, searchResult) = 0 then
begin
repeat
Form4.StringGrid1.RowCount := j + 1;
Form4.stringgrid1.Cells[0, j] := IntToStr(j);
Form4.stringgrid1.Cells[1, j] := searchResult.Name;
Form4.StringGrid1.Cells[2, j] :=
MD5Print(MD5File(path + DirectorySeparator + searchResult.Name));

until FindNext(searchResult) <> 0;
FindClose(searchResult);
Form4.ShowModal;
end;


Так вот этот код, может посчитать md5 пустой строки,
что-то вроде d41d8cd98f00b204e9800998ecf8427e
Как убедиться, что MD5File файл был открыт/прочитан и т.п.?
smith7
новенький
Сообщения: 11
Зарегистрирован: 17.07.2013 06:05:33

Сообщение smith7 »

Так и никто не ответил, или md5 никто не использует?
Воспроизвести такой md5 у меня ещё раз не получилось, но по памяти могу сказать у меня это второй случай.
Может есть баг какой?
Аватара пользователя
Sergei I. Gorelkin
энтузиаст
Сообщения: 1409
Зарегистрирован: 24.07.2005 14:40:41
Откуда: Зеленоград

Сообщение Sergei I. Gorelkin »

Если md5file не смогла открыть файл, то после ее вызова будет IoResult<>0. Это может происходить, если файл открыт другим процессом.
Mirage
энтузиаст
Сообщения: 881
Зарегистрирован: 06.05.2005 20:29:07
Откуда: Russia
Контактная информация:

Сообщение Mirage »

MD5 взломан, в целях безопасности использовать не рекомендуется.
Аватара пользователя
zoltanleo
постоялец
Сообщения: 459
Зарегистрирован: 17.10.2013 10:55:01

Сообщение zoltanleo »

Mirage писал(а):MD5 взломан, в целях безопасности использовать не рекомендуется.


Что лучше? crc? Где-то есть мануал по использованию с примерами (интересует получение хэша строки, файла и содержимого буфера)
Mirage
энтузиаст
Сообщения: 881
Зарегистрирован: 06.05.2005 20:29:07
Откуда: Russia
Контактная информация:

Сообщение Mirage »

CRC вообще ни о чем.
Лучше SHA256, SHA-3.
Аватара пользователя
zoltanleo
постоялец
Сообщения: 459
Зарегистрирован: 17.10.2013 10:55:01

Сообщение zoltanleo »

Mirage писал(а):Лучше SHA256, SHA-3.

Где их найти: DCP Hashes? Есть конкретный мануал по их использованию или готовые примеры?
Mirage
энтузиаст
Сообщения: 881
Зарегистрирован: 06.05.2005 20:29:07
Откуда: Russia
Контактная информация:

Сообщение Mirage »

Есть, например SynCrypto.pas из пакета Synopse.
Вот тут еще можно посмотреть:
https://duckduckgo.com/?q=delphi+sha
Аватара пользователя
ZeUsM
новенький
Сообщения: 57
Зарегистрирован: 08.11.2010 12:55:35
Откуда: Нерезиновая

Сообщение ZeUsM »

Mirage писал(а):MD5 взломан, в целях безопасности использовать не рекомендуется.

Простите, уважаемый, а что в Вашем понятии - взломан? :roll:
Если брут перебором, то таки любой алгоритм взламывается.
MD5 - не обратимое шифрование, поэтому не стоит подменять понятия.

А примеры работы с MD5 есть в CodeOcean от pilotlogic.com
Аватара пользователя
Лекс Айрин
долгожитель
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград
Контактная информация:

Сообщение Лекс Айрин »

ZeUsM писал(а):Простите, уважаемый, а что в Вашем понятии - взломан? :roll:


http://www.securitylab.ru/news/215101.php

Так что все серьезно. И необратимость шифрования тут весьма относительна. Дело даже не в том, что данные находятся перебором, а то, что для этого требуется не такое уж и большое время.
Аватара пользователя
zoltanleo
постоялец
Сообщения: 459
Зарегистрирован: 17.10.2013 10:55:01

Сообщение zoltanleo »

Mirage писал(а):Есть, например SynCrypto.pas


хм, хотелось бы кроссплатформы, а там dll
Сорьки, есть Линь :)

ps. на дельфях решается все элементарно просто, причем встроенными средствами (IdHashMessageDigest, dGlobal, IdHMACSHA и проч.). Вот бы на Лазарь это портировать :roll:
Аватара пользователя
ZeUsM
новенький
Сообщения: 57
Зарегистрирован: 08.11.2010 12:55:35
Откуда: Нерезиновая

Сообщение ZeUsM »

zoltanleo писал(а):
Mirage писал(а):Есть, например SynCrypto.pas


хм, хотелось бы кроссплатформы, а там dll
Сорьки, есть Линь :)

ps. на дельфях решается все элементарно просто, причем встроенными средствами (IdHashMessageDigest, dGlobal, IdHMACSHA и проч.). Вот бы на Лазарь это портировать :roll:

Если мне не изменяет склероз - это компоненты indy. Их разве нет в том же CT уже установленных, или они перестали устанавливаться в lazarus?

Добавлено спустя 15 минут 52 секунды:
zoltanleo
http://www.cityinthesky.co.uk/opensource/dcpcrypt/
В архиве дока с примерами, сами компоненты есть в CT 4.5 :idea:
Аватара пользователя
zoltanleo
постоялец
Сообщения: 459
Зарегистрирован: 17.10.2013 10:55:01

Сообщение zoltanleo »

ZeUsM писал(а):Их разве нет в том же CT уже установленных


И правда :shock: - попробую импортировать старые дельфийские проекты. Нюанс: выше упомянутые модули, добавленные вручную, не видит, пока не кинешь какой-нибудь Indy'ский компонент.

Mirage писал(а):Есть, например SynCrypto.pas из пакета Synopse.


не взлетел, есть зависимость от чисто дельфийских пакетов + какие-то траблы с асмом - дальше ковырять не стал
Аватара пользователя
ZeUsM
новенький
Сообщения: 57
Зарегистрирован: 08.11.2010 12:55:35
Откуда: Нерезиновая

Сообщение ZeUsM »

Лекс Айрин писал(а):
ZeUsM писал(а):Простите, уважаемый, а что в Вашем понятии - взломан? :roll:


http://www.securitylab.ru/news/215101.php

Так что все серьезно. И необратимость шифрования тут весьма относительна. Дело даже не в том, что данные находятся перебором, а то, что для этого требуется не такое уж и большое время.

Всё зависит от стойкости пароля. Попробуйте подобрать стойкий пароль - не 12345. :lol:
Если на это уйдет менее пары месяцев, тогда стоит задуматься о смене.
P.S. Взлом в данном примере означает взлом с точки зрения математической, никак не прикладной. Да и статья эта аж 2005 года, коллизии на данном этапе развития цифровых технологий находятся за секунды, однако хэши MD5 используют до сих пор (те кто паранойей не страдают).
Аватара пользователя
Лекс Айрин
долгожитель
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград
Контактная информация:

Сообщение Лекс Айрин »

ZeUsM писал(а):P.S. Взлом в данном примере означает взлом с точки зрения математической, никак не прикладной.


Я слышал и о прикладном применении. Собственно, анализ MD5 это стандартная практика взлома уже давно. Конечно, стойкий пароль чуть отстрочит взлом, но не панацея.

ZeUsM писал(а):Попробуйте подобрать стойкий пароль - не 12345. :lol:


таковых не использую.

ZeUsM писал(а):однако хэши MD5 используют до сих пор (те кто паранойей не страдают).


угу... они просто используют километровые пароли... математический взлом это первая ласточка, что использование алгоритма уже нежелательно. Ибо когда неприятность произойдет, то кулаками махать поздно будет.
Ответить