3

Digest::SHA1相比,使用Digest::SHA是否有任何优势,反之亦然?两者似乎都得到了维护,但我看不出 Digest::SHA1 存在的理由。Digest::SHA

4

2 回答 2

6

没有,Digest::SHA1是遗产,因为是SHA1。根据以下文档Digest::SHA1

2005 年,SHA-1 中发现了安全漏洞,即可能存在数学弱点,表明需要更强的哈希函数。Digest::SHA 模块实现了 SHA 系列中更强大的算法。

它清楚地引用了Digest::SHA. 中的实现Digest::SHADigest::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

DigestDigest命名空间中所有模块的工厂,它优先Digest::SHADigest::SHA1. 您甚至可以争辩Digest::SHA1说它已被弃用两倍,因为它已被Digest::SHA2.

我相信在这里证实“已弃用”一词可能很有用。我的意思Digest::SHA1是这对于仍然在 SHA 系列中的非 SHA1 哈希没有用——其他发行版可以处理更多.. Digest::SHA1 也更慢.. 据我所知,它仍然受支持并且有不久前的稳定版本:Digest-SHA1-2.13 - 2010 年 7 月 3 日 - Gisle Aas

于 2010-08-06T02:53:38.933 回答
0

编写为使用的东西Digest::SHA1::sha1,或者(出于愚蠢的原因)"Digest::$type"->new而不是Digest->new($type)可能需要的东西Digest::SHA1。除此之外,Digest::SHA它是首选,默认情况下将用于Digest->new("SHA-1").

于 2010-08-06T03:02:53.233 回答