Perl 与Digest::SHA1相比,Digest::SHA有哪些优势?
与其他方法相比,使用有什么好处吗?两者似乎都得到了维护,但我看不出Digest::SHA1与Perl 与Digest::SHA1相比,Digest::SHA有哪些优势?,perl,sha1,cpan,digest,Perl,Sha1,Cpan,Digest,与其他方法相比,使用有什么好处吗?两者似乎都得到了维护,但我看不出Digest::SHA1与Digest::SHA存在的理由,Digest::SHA1是遗留的,就像SHA1一样。根据摘要::SHA1的文件: 2005年,在SHA-1中发现了安全缺陷,即可能存在数学缺陷,这表明需要更强的哈希函数。SHA模块实现了SHA系列中更强的算法 它清楚地引用了摘要::SHA。Digest::SHA中的实现比Digest::SHA1快一点(根据Digest.pm的文档,您可能应该使用的是) Digest是Di
Digest::SHA
存在的理由,Digest::SHA1
是遗留的,就像SHA1
一样。根据摘要::SHA1
的文件:
2005年,在SHA-1中发现了安全缺陷,即可能存在数学缺陷,这表明需要更强的哈希函数。SHA模块实现了SHA系列中更强的算法
它清楚地引用了摘要::SHA
。Digest::SHA
中的实现比Digest::SHA1
快一点(根据Digest.pm
的文档,您可能应该使用的是)
Digest
是Digest
命名空间中所有模块的工厂,它将Digest::SHA
置于Digest::SHA1
之上。您甚至可以争辩说,Digest::SHA1
被两次过度弃用,因为它被Digest::SHA2
取代
我相信在这里充实“弃用”一词可能是有用的。我只是说,
Digest::SHA1
对于仍在SHA系列中的非SHA1散列没有用处——其他发行版可以处理更多。。摘要::SHA1也比较慢。。据我所知,它仍然受到支持,并在不久前有一个稳定的版本:Digest-SHA1-2.13-2010年7月3日-Gisle Aas使用Digest::SHA1::SHA1
编写的东西,或者(在一种愚蠢的情况下)使用Digest:$type->new
而不是Digest->->new($type)
可能需要摘要::SHA1
。除此之外,首选Digest::SHA
,默认情况下,它将用于Digest->new(“SHA-1”)
:SHA模块还包括SHA-2算法。。。但是,如果您仍然打算使用SHA-1,那么从另一方面来说,这并不是一个争论。我查看了文档,没有发现任何迹象表明Digest::SHA1是遗留的或不推荐的。@Xenotracid,错了,它仍然是一个参数。是否希望将这两个模块都加载到内存中,因为其他模块希望在不是SHA1的同一系列中实现哈希?当它只支持较新版本功能的一个子集时,您是否希望依赖一个不同的发行版来维护开放的Bug?这样做会更慢…这是一个更好的参数;)与谈论安全性缺陷不同,安全性缺陷可能相关,也可能不相关,这取决于您使用它的目的。选择Digest::SHA
而不是Digest::SHA1
的另一个重要原因是前者是一个核心库(从Perl 5.10.0开始),后者不是(也永远不会是).值得一提的是,Digest::SHA1现在已经死了。是的,它的包装已经不可用了。其他从Debian下载的发行版(如Ubuntu)也遵循同样的路径。
Algorithm Size Implementation MB/s
SHA-1 160 Digest::SHA v4.3.1 58.9
SHA-1 160 Digest::SHA1 v2.10 48.8