Цитата:
Сообщение от
fed
Во первых - вероятность hash collision всегда не нулевая. Во вторых - если я правильно помню, SHA1 сжимает 512 бит в 160. То есть коэфициент сжатия порядка 70%. Не бывает таких алгоритмов, которые бы любой поток гарантированно сжимали на 70% с сохранением однозначности.
Так ведь у SHA1 такое огромное кол-во различных хэшей, что даже на миллиардах записей вероятность коллизий де-факто равна нулю. Упрощенно вероятность вычислается как в
парадоксе дней рождения. Если я правильно посчитал, то для 10^18 записей вероятность коллизии примерно 10^(-13) (по ссылке
прямо приведено, что для 10 миллиардов записей в случае 128, а не 160 бит как у SHA1, вероятность хоть одной коллизии равна 10^(-18)). Это если SHA1 совсем рандом. И хотя это не так, Вики говорит, что это
не сильно мешает.