Mirage писал(а):Интересно, что тут может дать длина в байтах? Вероятности не умеем сравнивать вообще? Ну помножишь ты вероятность совпадения длины в байтах на 2 в минус 128-ой. Получишь значение малоотличимое от 2 в минус 128-ой.
А нулевую вероятность совпадения и побайтовое сравнение не даст. Задание - подумать почему.
Вы меня немножечко неправильно интерпретировали. Я ничего не умножаю и не перемножаю. Я лишь дополнил md5 дополнительным индексом sha, но при этом прекрасно понимаю, что даже при таком индексе возможны совпадения при каких-то очень громадных вариациях. Например если для md5 взять 256 битное число, то одинаковых md5 у цикла итераций этого числа (от 0 до max) - будет очень много. Если взять 512 битное число и прогнать его (от 0 до max) через sha 256, то тоже будет много одинаковых sha при разных числах в итерациях, но при этом числа будут отличаться по длине, которую в том числе можно взять в байтах, но не все будут отличаться по длине. Соответственно, именно индекс из трёх значений - является уникальным, т.к. разные алгоритмы хэширования дадут разные ответы в тех случаях где раньше были совпадения.
Как пример берём два слова: "умный" и "дурак". Слова совершенно разные. У них совершенно разные md5 и sha. Но при совмещении - означают они одно и тоже: "дурак умный" и "умный дурак". Теперь попытаемся сделать из умного дурака, а из дурака умного. Как это сделать? Я бы мог дать софистическое задание: "подумай почему"... Но я лучше дам другое задание, позволяющее сделать дурака умным, а умного дураком. Выполнять это задание на PC "нельзя" т.к. скорее всего не хватит памяти и вылетит БСОДА, но в уме Вы можете посчитать.
- Код: Выделить всё
var
durak:string;
umniy:string;
sd,su :string;
begin
sd := 'дурак';
su := 'умный';
durak := md5(sd);
umniy := md5(su);
while durak <> umniy do begin
sd := sd +' '; // добавляется пробел
durak := md5(sd);
end;
sd := 'дурак';
su := 'умный';
durak := md5(sd);
umniy := md5(su);
while umniy <> durak do begin
su := su +' '; // добавляется пробел
umniy := md5(su);
end;
end;
Суть вышеприведённого кода в том что, рано или поздно (при каких-то очень громадных итерациях через несколько дней или лет или тысячелетий) хэши: durak и umniy - совпадут и циклы остановятся, несмотря на, то, что я всего-лишь прибавлял пробелы, в каждой итерации. Так вот, когда хешируются тексты, то предугадать 100% отсутствие совпадений при md5 - нельзя. У sha больше устойчивость, но тоже будут совпадения, при хэше текстов. Например пароли, хэшированные md5 - довольно часто бывают одинаковые и поэтому требуют УНИКАЛЬНЫЙ логин. Посмотрите в поиске, есть примеры.
Соответственно, только тройной индекс можно считать уникальным индексом (и предполагаю что он устойчивее чем sha2048):
1) md5
2) sha
3) указываете длину в байтах (или в символах).
При этом я не перемножаю индексы, а сохраняю sha и md5 и длину, как получено из функции. Я просто сильно повысил устойчивость индекса.
Программистам - этот индекс лучше не использовать, т.к. я не математик и не даю 100% гарантию, что индекс устойчивее чем sha2048 (но мне кажется, что он получается устойчивее чем sha2048). Проверить может только математик.
PS: Между прочим (раз про балалайку нельзя "ныть"), то сообщаю, что и гитару тоже нельзя настраивать камертоном, т.к. это может нарушить права соседей (согласно решению суда, точнее согласно мошеннической экспертизе целого Департамента...). При этом гибель этой планеты неизбежна и ни у кого (на сегодняшний день) - нет шансов на выживание. И это основные проблемы всего цивилизованного Мира. Теперь меня попросят забанить с моей гитарой
Для тех кто не знает как выглядит Гитара (а это международный музыкальный инструмент), на картинке виден кусок гитары, с которой я, кстати, вполне успешно выступал в ДК МАИ и не только. А перед ней лежит, тот самый ужасный и коварный камертон, который по решению суда, основанного на Заведомо ложной экспертизе ст.307.УКРФ (которую отказались признать заведомо ложной экспертизой), так вот камертон, оказывается может нарушить права соседей. И благодаря этой мошеннической экспертизе - нечестно распределяют Гос. бюджет. И нет сомнения, что действия Департамента были преднамеренными, т.к. был суд и даже в суде, они настаивали, что камертон может нарушить права соседей. И я пишу всё это, и понимаю, что показывая всё это беззаконие в открытом доступе, я сильно рискую своей жизнью. Потому что: МВД и прокуратура, по какой-то непонятной причине, не захотели расследовать Заведомо ложную экспертизу. Это реальный квест, второй уровень: Камертон и Гитара... И гибель этой планеты неизбежна...
.
У вас нет необходимых прав для просмотра вложений в этом сообщении.