![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
как проверить подлинность файла? [D6]
Zloi-avgust © (2006-08-07 15:35:00)собственно сабж.. как можно проверить что файл действительно тот за кого себя выдаёт.. а не поменен :)
evvcom (2006-08-09 10:27:00) [1]> [17] Slym © (09.08.06 09:45)
Ну вот другое дело! С такой длиной нарваться на дубль практически нереально.
Slym (2006-08-09 09:45:00) [2]evvcom © (08.08.06 14:25) [16]
Нет MD5 128бит
только начал искать и понял что уникальность я сам нарушил... 2 одинаковых ФИО, но Case разный, т.е. на уровне базы уже не уникально... а хешировал все в UpperCase вот уникальных записей и стало меньше... исправил, проверил, один в один дублей нет
evvcom (2006-08-08 14:25:00) [3]> но как оказалось 50 из 30тыс хешей совпали
Что-то не верится. Или у тебя хеш был 16-битный? Используй 32 бита и еще раз сравни.
tesseract (2006-08-08 12:47:00) [4]
> Вообще какой смысл хэшировать ФИО? Если только для увеличения
> скорости поиска в БД,
Это немного другое :-) БД хэш-функции немного другие.
Shaman_ (2006-08-08 12:41:00) [5]Математически, 100% вероятность целостности файла может быть только при сравнении с данными равными по разрядности, тоесть при побайтовом сравнении. Только на практике это не нужно. Уникальности хэша вполне достаточно для проверки целостности файла.
> MD5 на 30тыс уникальных строк (ФИО) выдал мне на 50 уникальных строк меньше
Думаю, это не тот случай, который интересует автора темы. Вообще какой смысл хэшировать ФИО? Если только для увеличения скорости поиска в БД, но в этих целях нужно просто делать двойшую сверку, сначала на совпадение хэша, а потом на полное совпадение
Desdechado (2006-08-08 12:21:00) [6]Вероятность, конечно, ненулевая.
НО: если строить один хэш, а не хэш-таблицу на каждую строку файла, то зависимость совсем не линейная будет, не 50/30000
Slym (2006-08-08 12:06:00) [7]Desdechado © (08.08.06 11:48) [10]
И с вероятностью 50/30тыс. проверенный файл окажется подделкой
Slym (2006-08-08 12:04:00) [8]Desdechado © (08.08.06 11:48) [10]
Я к примеру...
Стояла задача: распространить список ФИО (для проверки вхождения проверяемого ФИО) так чтоб эти ФИО нельзя от туда вытащить... тоесть както необратимо почикать... первым пришло в голову хеши ФИО хранить и вести поиск по ним. но как оказалось 50 из 30тыс хешей совпали :(, а это не допустимо (ложное срабатывание)
Desdechado (2006-08-08 11:48:00) [9]> MD5 на 30тыс уникальных строк (ФИО) выдал мне на 50 уникальных строк меньше
Может, стоит хэш строить не построчный, а один на файл? Автору ведь целостность файла надо проверить, а не отдельных его элементов.
Slym (2006-08-08 11:45:00) [10]Если ищем хешированого Бин Ладена и попал хеш Васи Пупкина это не есть хорошо, Васе попадет низачто
Можно дважды хешировать разными алг. MD5+SHA чем длиньше строка хеша тем
Slym (2006-08-08 11:41:00) [11]MD5 на 30тыс уникальных строк (ФИО) выдал мне на 50 уникальных строк меньше, т.е. хеши разных строк совпали :(
Slym (2006-08-08 11:39:00) [12]Хеши все от лукавого (шутка)
100% результат даст побайтное сравнение с заведомо правильным файлом :)
DiamondShark (2006-08-08 11:30:00) [13]Отправитель считает хэш файла и шифрует его своим тайным ключом.
Получаетль расшифровывет хэш открытым ключом и сравнивает его с вычисленным хэшем файла.
Совпадение означает, что файл отправлен именно тем отправителем и при передаче не изменялся.
tesseract (2006-08-08 10:04:00) [14]Если просто узнать, что его не изменяли - то MD5.
Если же надо подтвердить что его записал тот, а не другой - то это уже ассиметричная криптография нужна.
ORMADA (2006-08-08 09:50:00) [15]как насчёт цифровых подписей ?
evvcom (2006-08-08 09:27:00) [16]> [2] brother © (08.08.06 09:16)
прочти внимательно
> что файл действительно тот за кого себя выдаёт.. а не поменен
brother (2006-08-08 09:16:00) [17]Может просто его размер проверить достаточно? или время последнего там чегонить...
Desdechado (2006-08-07 15:41:00) [18]проверить MD5-хэш