Я хочу создать уникальный хеш для данной строки, и мне было интересно, есть ли разница в повторяющихся хэшах для md5 и sha1.
Допустим, в качестве аргумента, следующий код:
foo = "gdfgkldng"
bar = "fdsfdsf"
md5(foo)
>>>> "25f709d867523ff6958784d399f138d9"
md5(bar)
>>>> "25f709d867523ff6958784d399f138d9"
Есть ли разница в вероятности этого между sha1 и md5? Также: если я использую строки с большим перекрытием («blabla1», «blabla2»), есть ли разница?
КСТАТИ. Меня не интересует безопасность алгоритмов, я просто хочу создать хеш, который будет как можно более уникальным.
1 ответ
MD5 имеет размер дайджеста 128 бит. SHA-1 имеет размер дайджеста 160 бит. Даже игнорируя обнаруженные слабые места, MD5 будет производить больше коллизий только потому, что у него меньшее пространство для вывода.
Вместо этого рассмотрите возможность использования SHA-256; он имеет размер дайджеста 256 бит (очевидно) и, кроме того, не был серьезно поврежден.
Похожие вопросы
Новые вопросы
hash
Хеш-функция - это любая четко определенная процедура или математическая функция, которая преобразует большой объем данных в небольшие данные, обычно в одно целое число. По вопросам о хэштегах, используемых для маркировки контента в социальных сетях, используйте хэштег. По вопросам об URL-адресах и привязках HTML используйте идентификатор-фрагмента. По вопросам о типе хэша Ruby используйте ruby-hash.