是否保存使用 sha256_crypt 加密但不加盐的密码
Is it save to store passwords encrypted with sha256_crypt but without additional salt
使用 sha256_crypt.encrypt("secretUserPassword")
创建用户密码哈希并将其存储到数据库而不向哈希添加 slat 是否节省?
如果是这样,是什么保护哈希免受彩虹 table 攻击?
这就是我在网络应用程序中创建新用户并将其存储到数据库的方式:
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)
documentation 声明函数 sha256_crypt.encrypt("password")
不仅计算 SHA-256 哈希,它还...
- 自动加盐
- 进行多轮散列
这两点对于获得安全的密码哈希函数都是必不可少的。最好在没有自制盐的情况下使用它,因为在创建加密安全盐时存在一些缺陷,所以最好把它留给图书馆。
使用 sha256_crypt.encrypt("secretUserPassword")
创建用户密码哈希并将其存储到数据库而不向哈希添加 slat 是否节省?
如果是这样,是什么保护哈希免受彩虹 table 攻击?
这就是我在网络应用程序中创建新用户并将其存储到数据库的方式:
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)
documentation 声明函数 sha256_crypt.encrypt("password")
不仅计算 SHA-256 哈希,它还...
- 自动加盐
- 进行多轮散列
这两点对于获得安全的密码哈希函数都是必不可少的。最好在没有自制盐的情况下使用它,因为在创建加密安全盐时存在一些缺陷,所以最好把它留给图书馆。