使用Express.js框架和密码与pbkdf2散列密码我读到默认算法是HMAC-SHA1,但我不明白为什么它没有升级到其他家族或SHA之一。
crypto.pbkdf2(password, salt, iterations, keylen, callback)
我们提供的keylen是我们想要的SHA的变体吗?像SHA-256,512等等?
HMAC如何改变输出?
最后,当SHA1断开时,它是否足够坚固?
抱歉,如果我把事情搞混了。
SHA-1已损坏,但并不意味着使用不安全;SHA-256(SHA-2)或多或少是未来的证明和长期替代品。破碎只意味着比暴力更快,但不一定可行或切实可行。
另见此答案:https://crypto.stackexchange.com/questions/3690/no-sha-1-collision-yet-sha1-is-broken
函数被破坏通常只意味着我们应该开始迁移到其他更强大的函数,而不是说有实际的危险。攻击只会变得更强,所以一旦第一个裂缝开始出现,考虑其他方案是个好主意。
我们提供的keylen是我们想要的SHA的变体吗?像SHA-256,512等等?
当您声明您正在对密码进行散列时,@CodesInChaos是右-keylen(即PBKDF2输出的长度)最多是HMAC本机散列函数的位数。
举例作为证明:
这里有22个字节的PBKDF2-HMAC-SHA-1-这是一个本机哈希大小2个字节(总共需要8192次迭代!-前4096次迭代生成前20个字节,然后我们再对集合进行4096次迭代!):
这里只得到了PBKDF2-HMAC-SHA-1的前20个字节,即恰好一个本机散列输出大小(总共需要4096次迭代)
即使您存储了22个字节的PBKDF2-HMAC-SHA-1,攻击者也只需要计算20个字节。。。这需要大约一半的时间,为了得到字节21和22,计算另一组完整的HMAC值,然后只保留2个字节。
HMAC如何改变输出?
HMAC RFC2104是一种为散列函数设置密钥的方法,特别是当您将密钥和文本简单地连接在一起时,这些函数具有弱点。HMAC-SHA-1是HMAC中使用的SHA-1;HMAC-SHA-512是HMAC中使用的SHA-512。
最后,当SHA1断开时,它是否足够坚固?
如果你有足够的迭代次数(2014年上万次到下几十万次或更多次),那么应该没问题。PBKDF2-HMAC-SHA-512尤其具有一个优势,即它在当前图形卡(即许多攻击者)上的性能比在当前CPU(即大多数防御者)上的性能差得多。
对于黄金标准,请参阅@ThomasPornin在SHA-1密码存储安全吗中给出的答案?其中一小部分是“对MD4、MD5和SHA-1的已知攻击是关于碰撞的,不影响预映像抗性。已经表明,MD4有一些弱点,当试图打破HMAC/MD4时,可以(仅在理论上)利用这些弱点,但这并不适用于您的问题。Kesley和Schneier在论文中提出的2106秒前置映像攻击是一个通用的权衡,它只适用于非常长的输入(260字节;那是一百万太字节——注意106 60如何超过160;这就是你看到权衡没有什么魔力的地方在里面)。"
问题内容: 我对Swift还是比较陌生,我无法使用HMAC和SHA1进行加密 问题答案: 问题解决了!首先,我没有正确使用字符串函数…我最终得到了: 然后我忘记了我需要对hmac结果进行base64编码。所以我将问题中链接的字符串函数修改为… 这给了我正确的结果
本文向大家介绍JS实现的base64加密、md5加密及sha1加密详解,包括了JS实现的base64加密、md5加密及sha1加密详解的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了JS实现的base64加密、md5加密及sha1加密。分享给大家供大家参考,具体如下: 1、base64加密 在页面中引入base64.js文件,调用方法为: 2、md5加密 在页面中引用md5.js文件,调用
问题内容: 我需要将SHA1加密的文本反向转换为纯文本。 我需要Java代码。 许多论坛都说无法做到,但是我发现了一个链接http://www.stringfunction.com/sha1-decrypter.html,它的功能完全相同。我已经测试过了 现在我需要用Java实现的算法。 请帮忙!!! 问题答案: 根本不可能。像所有加密摘要算法一样,SHA1不是加密算法,而是哈希算法。只要需要,它
问题内容: 根据标题,您是否找到了足以满足您需求的默认Java日志记录框架? 您是否使用替代日志记录服务,例如log4j或其他服务?如果是这样,为什么?我想听听您对有关不同类型项目中的日志记录要求的任何建议,以及在实际需要和/或有用时集成框架的建议。 问题答案: 使用第三方库记录依赖项 在大多数情况下,Java JDK日志记录本身并不足够。但是,如果您有一个使用多个开源第三方库的大型项目,您将很快
本文向大家介绍asp实现的sha1加密解密代码(和C#兼容),包括了asp实现的sha1加密解密代码(和C#兼容)的使用技巧和注意事项,需要的朋友参考一下 在百度找的几个asp sha1(vbs写的)加密结果和asp.net的sha1加密结果不一样,asp.net sha1加密完后是40位,网上找的asp sha1加密是64位,还以为asp.net做了截取(如网上的asp的md5机密和asp.ne
本文向大家介绍JavaScript SHA1加密算法实现详细代码,包括了JavaScript SHA1加密算法实现详细代码的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家介绍了JavaScript SHA1加密算法吗,供大家参考,具体内容如下 以上就是本文的全部内容,希望对大家有所帮助,希望大家继续关注呐喊教程的最新内容。