存储用sha256_crypt加密但没有额外盐的密码是否保存



使用sha256_crypt.encrypt("secretUserPassword")创建用户密码的哈希并将其存储到数据库中而不向哈希中添加slat是否保存?

如果是这样的话,是什么保护hashes免受彩虹表攻击?

这就是我在web应用程序中创建新用户并将其存储到数据库的方式:

admin = User()
admin.name = 'admin'
admin.password = sha256_crypt.encrypt("secretAdminPassword")
db.persist_user(admin)

这就是我如何检查凭据并登录用户

username = request.form['username']
password = request.form['password']   
user = user_from_db(username)
if sha256_crypt.verify(password, user.password):
   login_user(user)

文档指出,函数sha256_crypt.encrypt("password")不仅计算SHA-256哈希,而且。。。

  1. 自动加盐
  2. 进行多轮哈希

这两点对于获得安全的密码哈希函数都至关重要。最好在没有自制盐的情况下使用它,因为在创建加密安全盐时有几个陷阱,所以最好将其留给库。

相关内容

  • 没有找到相关文章

最新更新