23

我一直在阅读bcrypt(应用程序视角)。考虑用它在我的网站上存储密码。

在我读过的一些东西中,它暗示了两种方式:

  • eg 1: Bcrypt 是来自bcrypt的跨平台文件加密实用程序
  • 例如 2:bcrypt 是一种自适应密码散列算法,它使用 Blowfish 密钥调度,而不是对称加密算法。从如何安全地存储密码
  • bcrypt 是 Niels Provos 和 David Mazières 设计的密码自适应加密哈希函数,基于 Blowfish 密码:来自bcrypt wiki

Bcrypt到底是什么?

4

3 回答 3

25

两者都是:)

大多数时候人们提到 BCrypt 时,都是在谈论自适应哈希算法,但它也是一个不相关的文件加密实用程序的名称。

两者都基于 Blowfish 密码。

于 2012-01-27T15:43:36.517 回答
10

Bcrypt 加密软件使用的是 Bruce Schneier 在 1993 年设计的 Blowfish 算法。[1]

bcrypt 哈希函数就是这样,一个哈希函数。它不执行加密,它是散列。它基于 Blowfish 密码,被认为是一件好事,因为你可以让它随着时间的推移变慢

来自维基百科:

这在密码学上并不比标准的 Blowfish 密钥计划强得多,但密钥更新轮数是可配置的;因此,散列过程可以任意变慢,这有助于阻止对散列或盐的暴力攻击。

关于在您的网站上存储密码,您应该在散列密码之前对密码进行加密。

只有在您使用某种加密算法(例如 Blowfish、Rijndael / AES)加密它们之后,您才应该使用 bcrypt 对加密密码进行哈希处理,并存储密码哈希值

有关实施密码安全的更多详细信息,请参阅此问题的最佳答案。

于 2012-01-27T15:55:30.367 回答
3

bcrypt 是密码的密钥派生函数

散列(由bcrypt使用)和简单的话加密之间的区别也将是 -

1)加密数据可以通过私钥解密。2)散列是一种方法,如果您将纯文本散列为不可逆的,因此更安全。确保的唯一方法是重新散列纯文本并将其与先前散列的数据进行比较以确保相等。

于 2016-01-31T19:16:21.570 回答