создание md5 файлов
Модератор: Модераторы
создание md5 файлов
Есть такой код
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 файл был открыт/прочитан и т.п.?
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 файл был открыт/прочитан и т.п.?
Так и никто не ответил, или md5 никто не использует?
Воспроизвести такой md5 у меня ещё раз не получилось, но по памяти могу сказать у меня это второй случай.
Может есть баг какой?
Воспроизвести такой md5 у меня ещё раз не получилось, но по памяти могу сказать у меня это второй случай.
Может есть баг какой?
- Sergei I. Gorelkin
- энтузиаст
- Сообщения: 1409
- Зарегистрирован: 24.07.2005 14:40:41
- Откуда: Зеленоград
Если md5file не смогла открыть файл, то после ее вызова будет IoResult<>0. Это может происходить, если файл открыт другим процессом.
Mirage писал(а):MD5 взломан, в целях безопасности использовать не рекомендуется.
Что лучше? crc? Где-то есть мануал по использованию с примерами (интересует получение хэша строки, файла и содержимого буфера)
Mirage писал(а):Лучше SHA256, SHA-3.
Где их найти: DCP Hashes? Есть конкретный мануал по их использованию или готовые примеры?
-
Mirage
- энтузиаст
- Сообщения: 881
- Зарегистрирован: 06.05.2005 20:29:07
- Откуда: Russia
- Контактная информация:
Есть, например SynCrypto.pas из пакета Synopse.
Вот тут еще можно посмотреть:
https://duckduckgo.com/?q=delphi+sha
Вот тут еще можно посмотреть:
https://duckduckgo.com/?q=delphi+sha
Mirage писал(а):MD5 взломан, в целях безопасности использовать не рекомендуется.
Простите, уважаемый, а что в Вашем понятии - взломан?
Если брут перебором, то таки любой алгоритм взламывается.
MD5 - не обратимое шифрование, поэтому не стоит подменять понятия.
А примеры работы с MD5 есть в CodeOcean от pilotlogic.com
- Лекс Айрин
- долгожитель
- Сообщения: 5723
- Зарегистрирован: 19.02.2013 16:54:51
- Откуда: Волгоград
- Контактная информация:
ZeUsM писал(а):Простите, уважаемый, а что в Вашем понятии - взломан?![]()
http://www.securitylab.ru/news/215101.php
Так что все серьезно. И необратимость шифрования тут весьма относительна. Дело даже не в том, что данные находятся перебором, а то, что для этого требуется не такое уж и большое время.
Mirage писал(а):Есть, например SynCrypto.pas
хм, хотелось бы кроссплатформы, а там dll
Сорьки, есть Линь
ps. на дельфях решается все элементарно просто, причем встроенными средствами (IdHashMessageDigest, dGlobal, IdHMACSHA и проч.). Вот бы на Лазарь это портировать
zoltanleo писал(а):Mirage писал(а):Есть, например SynCrypto.pas
хм, хотелось бы кроссплатформы, а там dll
Сорьки, есть Линь
ps. на дельфях решается все элементарно просто, причем встроенными средствами (IdHashMessageDigest, dGlobal, IdHMACSHA и проч.). Вот бы на Лазарь это портировать
Если мне не изменяет склероз - это компоненты indy. Их разве нет в том же CT уже установленных, или они перестали устанавливаться в lazarus?
Добавлено спустя 15 минут 52 секунды:
zoltanleo
http://www.cityinthesky.co.uk/opensource/dcpcrypt/
В архиве дока с примерами, сами компоненты есть в CT 4.5
ZeUsM писал(а):Их разве нет в том же CT уже установленных
И правда
Mirage писал(а):Есть, например SynCrypto.pas из пакета Synopse.
не взлетел, есть зависимость от чисто дельфийских пакетов + какие-то траблы с асмом - дальше ковырять не стал
Лекс Айрин писал(а):ZeUsM писал(а):Простите, уважаемый, а что в Вашем понятии - взломан?![]()
http://www.securitylab.ru/news/215101.php
Так что все серьезно. И необратимость шифрования тут весьма относительна. Дело даже не в том, что данные находятся перебором, а то, что для этого требуется не такое уж и большое время.
Всё зависит от стойкости пароля. Попробуйте подобрать стойкий пароль - не 12345.
Если на это уйдет менее пары месяцев, тогда стоит задуматься о смене.
P.S. Взлом в данном примере означает взлом с точки зрения математической, никак не прикладной. Да и статья эта аж 2005 года, коллизии на данном этапе развития цифровых технологий находятся за секунды, однако хэши MD5 используют до сих пор (те кто паранойей не страдают).
- Лекс Айрин
- долгожитель
- Сообщения: 5723
- Зарегистрирован: 19.02.2013 16:54:51
- Откуда: Волгоград
- Контактная информация:
ZeUsM писал(а):P.S. Взлом в данном примере означает взлом с точки зрения математической, никак не прикладной.
Я слышал и о прикладном применении. Собственно, анализ MD5 это стандартная практика взлома уже давно. Конечно, стойкий пароль чуть отстрочит взлом, но не панацея.
ZeUsM писал(а):Попробуйте подобрать стойкий пароль - не 12345.![]()
таковых не использую.
ZeUsM писал(а):однако хэши MD5 используют до сих пор (те кто паранойей не страдают).
угу... они просто используют километровые пароли... математический взлом это первая ласточка, что использование алгоритма уже нежелательно. Ибо когда неприятность произойдет, то кулаками махать поздно будет.
