【发布时间】:2015-11-11 16:59:43
【问题描述】:
我正在阅读这篇文章,BCrypt 似乎是:
- 从密码计算哈希的速度很慢(一件好事)
- 不在数据库中存储盐,而是直接存储在密码中
- 使用 log_rounds 参数表示计算内部哈希函数的次数。
所以哈希看起来像这样:
hashed = hashpw(plaintext_password, gensalt(log_rounds=13))
print hashed
'$2a$13$ZyprE5MRw2Q3WpNOGZWGbeG7ADUre1Q8QO.uUUtcbqloU0yvzavOm'
但是,如果这是存储在数据库中的内容,如果数据库被黑客入侵,我们是否仍然容易受到攻击? BCrypt 哈希包含盐和编码密码,那么为什么这比将盐和密码存储在数据库中更好(文章称其为糟糕的解决方案#4)?
主要区别是 BCrypt 的散列机制缓慢,这使得 BCrypt 的一长串常用密码既困难又昂贵?
【问题讨论】:
-
就我所读到的 BCrypt 安全性而言,这实际上是基于他的缓慢性,因为您使用的加密越好,它们的速度就越慢。没有人拥有的一件事是时间。尤其是当您尝试暴力破解密码时
标签: bcrypt