MD5 нарушается, поскольку она не является криптографической хэш. В частности, он не имеет больше второе сопротивление прообраз Предположим, что мы имеем
h = MD5(d)
где d
является документом и h
является MD5-хэш от него. Теперь я могу найти d1
такой, что MD5(d1) = h
. Это означает, что я могу найти второй прообраз, который утверждает, что имеет тот же хеш. Хуже того, я могу сделать документ и изменить скрытые части его, пока не получу один и тот же хэш.
Положительные стороны заключаются в том, что я могу подать вам ложный документ, и ваш хэш-чек будет считать его оригиналом.
MD5 по-прежнему является люком в том смысле, что вы не можете восстановить d
всего лишь h
. Он использовался как таковой для шифрования паролей , но вы никогда не должны это делать. Для деривации ключей для паролей вы должны либо использовать PBKDF2, bcrypt, либо (предпочтительно) scrypt.
SHA1 также имеет вмятины в саркофаге. Вот почему выбираются функции хэша SHA-2 или выше.
средства правовой защиты? не используйте его. –
То же, что и [Если MD5 сломан, что лучше?] (Http://stackoverflow.com/questions/2768913/if-md5-is-broken-what-is-a-better-solution) –