2010-08-06 3 views

ответ

6

Существует нет, Digest::SHA1 является наследием, равно как и SHA1. За Документов о Digest::SHA1:

В 2005 году недостатки безопасности были выявлены в SHA-1, а именно, что возможная математическая слабость может существовать, что указывает на более сильную хэш-функция была бы желательна. Модуль Digest :: SHA реализует более сильные алгоритмы в семействе SHA.

В нем четко указаны Digest::SHA. Реализация в Digest::SHA немного быстрее, чем Digest::SHA1 (по документам Digest.pm - то, что вы, вероятно, должны использовать в любом случае).

Algorithm  Size Implementation     MB/s 
SHA-1   160  Digest::SHA v4.3.1    58.9 
SHA-1   160  Digest::SHA1 v2.10    48.8 

Digest фабрика для всех модулей в Digest пространстве имен, он отдает приоритет Digest::SHA над Digest::SHA1. Вы даже можете утверждать, что Digest::SHA1 дважды устарел, поскольку он был заменен на Digest::SHA2.

Я считаю, что, вероятно, полезно обосновать здесь термин «устаревший». Я просто хочу сказать, что Digest::SHA1 не полезен для хэшей не SHA1, которые все еще находятся в семействе SHA - другие дистрибутивы могут обрабатывать больше. Digest :: SHA1 также медленнее. Насколько мне известно, он по-прежнему поддерживается и имеет стабильный релиз не так давно: Digest-SHA1-2.13 - 3 июля 2010 - Gisle Aas

+0

Модуль SHA включает также алгоритмы SHA-2 ... но если вы * * все еще планируете использовать SHA-1, это действительно не аргумент в одну сторону другой. Я просмотрел документы и не видел ничего, чтобы предположить, что Digest :: SHA1 был устаревшим или устаревшим. – xenoterracide

+1

@xenoterracid, Неправильно, это еще аргумент. Вы хотите, чтобы оба они были загружены в память, потому что какой-то другой модуль хочет реализовать хэш в том же семействе, что и не SHA1? Вы хотите зависеть от другого дистрибутива при сохранении открытых ошибок, когда он поддерживает только подмножество функциональности более нового - и при этом он делает это медленнее ** ... –

+2

Это лучший аргумент;), в отличие от разговоров о недостатках безопасности, которые могут или не могут быть релевантными в зависимости от того, для чего вы его используете. – xenoterracide

0

Материал, который был написан для использования Digest::SHA1::sha1 или которые (в порыве глупостей) делает "Digest::$type"->new вместо Digest->new($type) может понадобиться Digest::SHA1. Помимо этого, Digest::SHA является предпочтительным, и он будет использоваться по умолчанию для Digest->new("SHA-1").

Смежные вопросы