Digest :: SHA优于Digest :: SHA1有什么优势?

xen*_*ide 3 perl sha1 cpan digest

使用Digest :: SHA而不是Digest :: SHA1有什么优势,反之亦然?两者似乎都得到了维护但我没有看到Digest :: SHA1甚至存在的原因Digest::SHA.

Eva*_*oll 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
Run Code Online (Sandbox Code Playgroud)

Digest是一个工厂中的所有模块Digest的命名空间,其优先Digest::SHADigest::SHA1.您甚至可以争论Digest::SHA1两次弃用,因为它被替换为Digest::SHA2.

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

  • 这是一个更好的论点;)而不是谈论可能会或可能不相关的安全漏洞,具体取决于您使用它的目的. (2认同)
  • 选择`Digest :: SHA`而不是`Digest :: SHA1`的另一个重要原因是前者是核心库(从Perl 5.10.0开始),而后者不是(并且永远不会). (2认同)