与Digest::SHA1相比,使用Digest::SHA是否有任何优势,反之亦然?两者似乎都得到了维护,但我看不出 Digest::SHA1 存在的理由。Digest::SHA
2 回答
没有,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
是这对于仍然在 SHA 系列中的非 SHA1 哈希没有用——其他发行版可以处理更多.. Digest::SHA1 也更慢.. 据我所知,它仍然受支持并且有不久前的稳定版本:Digest-SHA1-2.13 - 2010 年 7 月 3 日 - Gisle Aas
编写为使用的东西Digest::SHA1::sha1
,或者(出于愚蠢的原因)"Digest::$type"->new
而不是Digest->new($type)
可能需要的东西Digest::SHA1
。除此之外,Digest::SHA
它是首选,默认情况下将用于Digest->new("SHA-1")
.