使用Python的盐渍哈希密码(每个新密码都有不同的盐)

MrC*_*ooL 5 hash cryptography salt

根据我在阅读和研究后的理解,使用盐的目的应该是每个存储密码的不同盐.

如果使用相同的salt来存储所有密码,我可以理解如何实现它,因为我可以将salt存储到一个常量私有变量并使用它.但是,事实并非如此.

虽然使用新的不同盐存储每个新密码是完全合理的,但我怎么想知道哪个用户的密码与哪个盐相关联?我想到的快速解决方案是将盐与用户的表属性一起存储,可能称为"盐",但是如果太容易从第一个地方找到盐就会失去从第一个地方获取盐的目的.数据库.

有人可以就此提出建议吗?

注意:我使用的是Python内置库(hashlib)或Bycrypt(CryptacularPasslib)

Oli*_*rth 7

我想到的快速解决方案是将salt与用户的table属性一起存储

这正是你做的.了解盐并没有真正降低其益处:

  • 数据库中的相同密码将具有不同的哈希值.
  • 彩虹表不起作用.
  • 试图与任何哈希匹配的暴力攻击将会减慢.