Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.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
Security 我的朋友用SHA512算法无盐散列密码。我如何说服他需要加盐?_Security_Hash_Passwords_Sha512 - Fatal编程技术网

Security 我的朋友用SHA512算法无盐散列密码。我如何说服他需要加盐?

Security 我的朋友用SHA512算法无盐散列密码。我如何说服他需要加盐?,security,hash,passwords,sha512,Security,Hash,Passwords,Sha512,今天我发现了一件不可思议的蠢事——我的朋友用sha512算法对用户密码进行了无盐哈希运算。我立即向他提出了这个问题,但他说他希望看到任何人破解他的数据库中的一个密码。我告诉他,如果没有哈希,他的数据库很容易受到rainbow攻击,但他说没有人为sha512提供这么大的rainbow表,因为每个表都有64个十六进制字符长 我怎样才能让他相信他还需要加盐?有人知道sha512的散列破解率是多少吗?我可以说破解所有8个字符密码需要这么长或那么长的时间,等等。问问你的朋友,他的数据库中是否有以下哈希值:

今天我发现了一件不可思议的蠢事——我的朋友用sha512算法对用户密码进行了无盐哈希运算。我立即向他提出了这个问题,但他说他希望看到任何人破解他的数据库中的一个密码。我告诉他,如果没有哈希,他的数据库很容易受到rainbow攻击,但他说没有人为sha512提供这么大的rainbow表,因为每个表都有64个十六进制字符长


我怎样才能让他相信他还需要加盐?有人知道sha512的散列破解率是多少吗?我可以说破解所有8个字符密码需要这么长或那么长的时间,等等。

问问你的朋友,他的数据库中是否有以下哈希值:

b109f3bbbc244eb82441917ed06d618b9008dd09b3befd1b5e07394c706a8bb980b1d7785e5976ec049b46df5f1326af5a2ea6d103fd07c95385ffab0cacbc86
bc547750b92797f955b36112cc9bdd5cddf7d0862151d03a167ada8995aa24a9ad24610b36a68bc02da24141ee51670aea13ed6469099a4453f335cb239db5da
adfb6dd1ab1238afc37acd8ca24c1279f8d46f61907dd842faab35b0cc41c6e8ad84cbdbef4964b8334c22c4985c2387d53bc47e6c3d0940ac962f521a127d9f
3c9909afec25354d551dae21590bb26e38d53f2173b8d3dc3eee4c047e7ab1c1eb8b85103e3be7ba613b31bb5c9c36214dc9f14a42fd7a2fdb84856bca5c44c2
d404559f602eab6fd602ac7680dacbfaadd13630335e951f097af3900e9de176b6db28512f2e000b9d04fba5133e8b1c6e8df59db3a8ab9d60be4b97cc9e81db
3627909a29c31381a071ec27f7c9ca97726182aed29a7ddd2e54353322cfb30abb9e3a6df2ac2c20fe23436311d678564d0c8d305930575f60e2d3d048184d79
ba3253876aed6bc22d4a6ff53d8406c6ad864195ed144ab5c87621b6c233b548baeae6956df346ec8c17f5ea10f35ee3cbc514797ed7ddd3145464e2a0bab413
ddaf35a193617abacc417349ae20413112e6fa4e89a97ea20a9eeee64b55d39a2192992a274fc1a836ba3c23a3feebbd454d4423643ce80e2a9ac94fa54ca49f
c70b5dd9ebfb6f51d09d4132b7170c9d20750a7852f00680f65658f0310e810056e6763c34c9a00b0e940076f54495c169fc2302cceb312039271c43469507dc
0dd3e512642c97ca3f747f9a76e374fbda73f9292823c0313be9d78add7cdd8f72235af0c553dd26797e78e1854edee0ae002f8aba074b066dfce1af114e32f8
401b09eab3c013d4ca54922bb802bec8fd5318192b0a75f201d8b3727429080fb337591abd3e44453b954555b7a0812e1081c39b740293f765eae731f5a65ed1
9719a6439375c9115e01dceda86e210e5f2d78a6cf3f4872997746832c4c0f58c5ae0923fabe5acfb923dfc94a117a7d444e453622912dfa193fc6636581f159
如果你想知道的话,这些是SHA-512散列,分别用于
密码
密码1
letmein
123
1234
12345
123456
abc
abc123
qwerty
asdf
,以及
旗鱼。如果你愿意的话,你可以很容易地做到


然后让你的朋友阅读并向他展示,用普通硬件可以计算出多少值。现在它是关于

所以你可以建造一个彩虹台

  • 包含英语词典中的所有单词(≈(15万元)
  • 电话簿上的所有名字(≈5'000'000)
  • 以及最多6个位置的所有字符组合(20'158'268'676)
…大约两分钟后

然后我会告诉他,结果哈希值的长度与破解密码所需的时间完全无关

即使是咸SHA-512也不足以保证密码的安全,因为这种算法速度太快了。这就是为什么我们应该使用像PBKDF2的BCrypt这样的慢算法,并考虑成本因素

最后我会在谷歌上搜索他的一些散列,因为互联网上已经存在未加盐的彩虹表了。因此,您很有可能找到一个较弱的密码


我在一篇关于的教程中收集了所有这些信息。完成这个过程不应该超过10分钟。

除了rainbowtables,还可以强制执行一个简单的哈希,请参见。只要问问他,如果你每秒可以猜20亿次,他估计他的用户密码会抵抗多久

现代算法,如scrypt、bcrypt、pbkdf2、sha512_crypt(后者使用sha512,但有很多回合)的速度要慢得多,因此暴力攻击需要更长的时间


因此,您想要的不仅仅是说服他在sha512哈希中添加一个salt,而是使用一种为密码哈希而设计的现代“慢速”算法。

尝试对他的数据库进行字典攻击。这可能会有所帮助