Security 最佳通用摘要功能?

Security 最佳通用摘要功能?,security,hash,digest,Security,Hash,Digest,在2009年编写一个普通的新应用程序时,在安全性和性能方面,最合理的摘要功能是什么?(随着情况的变化,我将来如何确定这一点?) 以前,答案包括SHA1、SHA2、SHA-256、SHA-512、MD5、bCrypt和河豚 我意识到,在很大程度上,如果使用得当,其中任何一个都可以起作用,但我不想掷骰子随机挑选一个。谢谢。我想: 2006年3月15日:沙二家 散列函数(即SHA-224、, SHA-256、SHA-384和SHA-512)可能是 由联邦机构为所有人使用 使用安全哈希的应用程序 算法。

在2009年编写一个普通的新应用程序时,在安全性和性能方面,最合理的摘要功能是什么?(随着情况的变化,我将来如何确定这一点?)

以前,答案包括SHA1、SHA2、SHA-256、SHA-512、MD5、bCrypt和河豚

我意识到,在很大程度上,如果使用得当,其中任何一个都可以起作用,但我不想掷骰子随机挑选一个。谢谢。

我想:

2006年3月15日:沙二家 散列函数(即SHA-224、, SHA-256、SHA-384和SHA-512)可能是 由联邦机构为所有人使用 使用安全哈希的应用程序 算法。联邦机构应该 停止使用SHA-1进行数字通信 签名、数字时间戳和 其他需要 碰撞阻力 实用,必须使用SHA-2 这些函数的哈希函数族 2010年后的申请。2010年以后,, 联邦机构只能使用SHA-1 对于以下应用程序: 基于散列的消息认证 编码(HMAC);密钥派生 功能(KDF);和随机数 发电机(RNG)。无论用途如何,, NIST鼓励应用和 协议设计者使用SHA-2 所有新函数的哈希函数族 应用程序和协议

你说“消化功能”;这可能意味着您希望使用它来计算“长”消息的摘要(而不仅仅是像密码一样散列“短”消息)。这意味着bCrypt和类似的选择已经过时;它们被设计成能够缓慢地阻止对密码数据库的暴力攻击。MD5完全崩溃了,SHA-0和SHA-1太弱了,不可能是好的选择。Blowfish是一种流密码(尽管您可以在生成摘要的模式下运行它),所以它也不是一个好的选择


这就剩下了几个散列函数家族,包括SHA-2、HAVAL、RIPEMD、WHIRLPOOL等。其中,SHA-2系列是最彻底的密码分析,因此我建议将其用于一般用途。对于典型应用,我建议使用SHA2-256或SHA2-512,因为这两种尺寸是最常见的,将来可能会受到SHA-3的支持。

这取决于您需要它做什么

如果您需要实际的安全性,在这种情况下,很容易发现碰撞会危及您的系统,我会使用类似SHA-256或SHA-512的东西,因为它们是各种机构极力推荐的

如果您需要快速的东西,并且可以用来唯一地识别某些东西,但是没有实际的安全要求(即,如果攻击者发现冲突,他们将无法进行任何恶意操作),那么我将使用类似MD5的东西


MD4、MD5和SHA-1已被证明比预期的更容易破碎,即通过生日攻击方法发现碰撞。RIPEMD-160广受好评,但仅在160位时,生日攻击只需要2^80次操作,因此不会永远持续。惠而浦有着卓越的特性,看起来是所有产品中最强大的,尽管它没有SHA-256或SHA-512那样的后盾——从这个意义上说,如果SHA-256或SHA-512出现问题,你就更有可能通过适当的渠道了解它。

是的,这就是我的意思(应该更清楚)。谢谢。不要使用MD5进行任何远程加密。它现在是一个反腐败校验和,仅此而已。它被彻底破坏了。忘了它吧;它所做的任何事情都比其他哈希函数做得更好。当安全性是一个因素时,不要使用MD5或SHA-1。SHA1仍然是合适的。但是MD5完全被破坏了。没有理由继续使用它。没有一个不要使用MD5!如果您想防止意外的传输问题,只需使用CRC32;它的速度更快,加密安全性也差不多。MD5就是这样破的!避开它!