我在哈希和密码学中读到了盐,我在StackOverflow中关于盐的其他答案中也看到了这一点:
salting是将数据添加到密码(或任何我们想要加密的内容)中,以使那些想要用bruteforce和彩虹表破解它的人更难破解它。
例如,我的密码是password,我的盐是salt,因此程序将其转换为PASSWORDSALT,然后对其进行哈希处理。
但当我使用scrypt和blake时,它不起作用(我还没有尝试过使用salt的其他加密类型)
Python代码:
>>> blake2b(b'PASSWORD', salt=b'SALT').hexdigest()
52d9cb2e8690fcc5d34ef948e09c51aae66ff1d8e099bb72e2db333d6aa90b12c1745872b72004d6a64210cbb9be11307817f156863073d85cad0f2d643a4416
>>> blake2b(b'PASSWORDSALT').hexdigest()
aa2fd2094ec83915eef264d4f24870f3d2ebb676449bc824161cf53aa62142dd64e5a80214a0638195eb1d3c2474727711c4e2149d10afc5767c0c25f5625a54那么为什么它们是不平等的呢?
发布于 2020-08-23 21:28:03
密码和盐只是密码散列函数的输入。密码哈希函数允许有多个输入。这与SHA-256这样的安全散列不同,SHA-256只将一个输入作为散列:消息。
如果您查看Blake specification,您将在2.8节中看到盐被放在参数块中,并且它没有被用作每次迭代的单独输入。
https://stackoverflow.com/questions/63546459
复制相似问题