Каковы преимущества Digest :: SHA перед Digest :: SHA1? - PullRequest
3 голосов
/ 06 августа 2010

Есть ли какие-либо преимущества в использовании Дайджест :: SHA над Дайджест :: SHA1 или наоборот?оба, кажется, поддерживаются, но я не вижу причин для того, чтобы Digest :: SHA1 даже существовал с существованием Digest::SHA.

Ответы [ 2 ]

6 голосов
/ 06 августа 2010

Нет, 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 - 03 июля 2010 - Gisle Aas

0 голосов
/ 06 августа 2010

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

...