Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Hash 为什么在SHA-512更安全的情况下使用SHA1散列机密?_Hash_Sha1_Sha512 - Fatal编程技术网

Hash 为什么在SHA-512更安全的情况下使用SHA1散列机密?

Hash 为什么在SHA-512更安全的情况下使用SHA1散列机密?,hash,sha1,sha512,Hash,Sha1,Sha512,我并不想就此展开辩论,但我正试图理解为什么这么多应用程序在SHA512更安全的情况下使用SHA1散列机密背后的技术原理。也许这只是为了向后兼容 除了明显的较大尺寸(128个字符vs 40个字符)或轻微的速度差异之外,人们使用前者还有其他原因吗 另外,我相信SHA-1是几年前由录像机处理器首次破解的。是否有人破解了512(可能是用吹叶机),或者它仍然可以安全使用而不需要加盐?SHA1和SHA512都是散列函数。如果您将它们用作加密散列,那么这也许是使用SHA512的好理由;然而,有些应用程序仅使用

我并不想就此展开辩论,但我正试图理解为什么这么多应用程序在SHA512更安全的情况下使用SHA1散列机密背后的技术原理。也许这只是为了向后兼容

除了明显的较大尺寸(128个字符vs 40个字符)或轻微的速度差异之外,人们使用前者还有其他原因吗


另外,我相信SHA-1是几年前由录像机处理器首次破解的。是否有人破解了512(可能是用吹叶机),或者它仍然可以安全使用而不需要加盐?

SHA1和SHA512都是散列函数。如果您将它们用作加密散列,那么这也许是使用SHA512的好理由;然而,有些应用程序仅使用这些函数来识别对象。例如,Git使用SHA1廉价地区分对象。在这种情况下,由于使用SHA1时两个文档之间发生冲突的可能性非常小,因此当SHA1非常适合该任务时,实际上没有理由对SHA512进行额外的空间需求


在加密哈希和选择是否使用salt方面,您可能对阅读感兴趣。即使使用SHA512,使用salt也是一个好主意(而且这样做也很便宜,为什么不这么做呢?),因为您可以猜测最上面的密码,看看它们是否具有相同的哈希值,但作者指出,这是一种更安全的机制。在任何情况下,你都必须确定与额外的时间+空间相关的成本以及与违约可能性相关的成本,并确定你想要多偏执。正如微软最近发现的,当涉及到安全性时,偏执狂通常是好的,但你真的必须做数学来确定它是否有意义。。。。安全性方面的收益是否超过了时间和存储成本?

如果您需要快速散列某些内容,或者只需要160位散列,您可以使用SHA-1

为了快速比较数据库条目,您可以获取100个字段,并从中生成一个SHA-1散列,产生160位。这160位是10^50ish值


如果我的值不太可能超过10^50的一小部分,那么使用更简单、更快的算法对我的值进行散列会更快。

SHA-1的大多数用途都是为了互操作性:我们在实现强制使用SHA-1的协议时使用SHA-1。开发的易用性也得到了考虑:各种语言和编程环境中的SHA-1实现比SHA-512实现更为常见

此外,即使大多数哈希函数的使用都没有性能问题(至少在哈希函数是瓶颈的情况下没有性能问题),也有一些体系结构,其中SHA-1的效率远远高于SHA-512。考虑一个基本的Link系统路由器:它使用MIPS派生的CPU,时钟频率为200兆赫。这种机器可以重新编程,例如使用(嵌入式系统的小型Linux)。作为路由器,它具有快速网络(100Mbit/s)。假设您想要散列一些数据(例如,作为某些VPN软件的一部分——路由器看起来是运行VPN的好选择)。使用SHA-1,您将使用完整的CPU获得大约6MB/s的速度。这已经远远低于网络带宽。在同一台机器上,SHA-512的速度不超过1.5 MB/s。在这样一个系统上,性能上的差异是不可忽略的。此外,如果我在Linksys路由器上使用SHA-1进行某种通信协议,那么链路另一端的机器也必须使用SHA-1


好消息是,选择一个新的标准哈希函数(代号为)的竞争正在进行。一些竞争对手提供的性能类似于SHA-1,甚至更好,但仍能产生512位输出,并且(可能)与SHA-512一样安全。

并非所有哈希使用都是安全的-related@Joe你确定?我听说最近有各种各样的加密被黑客攻击,量子计算正在发生,它可以在几秒钟内破解很多算法。哦,等等。没有关系。散列与加密不同。忘了那个细节。@Javier看看我的标题,还有我关于安全的问题。我问的是安全问题,而不是对象比较或校验和等问题。@Michael我的真正意思是:为什么人们仍然使用SHA1作为安全设备(不是为了校验和或其他目的)。@orokusaki;您可能希望更新该问题,以说明::-)@Dean J我认为标题和问题中的
部分会解决这个问题。关于
sha1
和安全性,我还能指什么;您可能很容易不知道哈希是在安全性之外使用的。由于你必须向两位为你键入答案的人澄清这一点,很明显,你在第一次回答时还不够清楚。波士顿网站关于为什么更改密码的文章的链接现在隐藏在付费墙后面。npr还有一个选择:@Thomas谢谢你的好消息。我只是在科罗拉多州的一台私人计算机上使用SHA512进行密码保护,因为我不想要盐数据(出于某些强迫症原因),但我希望它是防裂的(至少在一段时间内)。安全是一个问题,但没有信用卡号码丢失的风险,等等。@Thomas Wow对你的回答印象深刻,所以我查看了你的网站和简历。这方面的博士呃。那么,你认为我的密码保护是个坏主意吗?@orokusaki:对于科罗拉多州私人计算机的密码保护来说,加密技术是一种过分的手段。如果潜在的攻击者真的有动机,那么他们只需要物理访问系统(例如,在键入密码时安装键盘记录器设备)。因此,您可以使用任何让您感到“安全”的东西。我仍然想知道SHA1或SH256是否更安全。例如,如果使用10000次迭代的PBKDF2,那么使用SHA1或SHA256作为哈希之间的安全性差异(如果有的话)是什么