Bcrypt 是用于哈希还是加密?有点迷茫

问题描述 投票:0回答:3

我一直在阅读

bcrypt
(应用视角)。考虑用它来存储我网站上的密码。

在我读到的一些内容中,它建议了两种方式:

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

Bcrypt到底是什么?

security encryption hash blowfish bcrypt
3个回答
26
投票

两者都是:)

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

两者都基于 Blowfish 密码。


10
投票

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

bcrypt 哈希函数就是一个 hash 函数。它不执行加密,而是进行散列。它基于 Blowfish 密码,被认为是一件好事,因为你可以“随着时间的推移让它变慢”。 来自维基百科:

这在密码学上并没有明显强于标准 Blowfish 密钥时间表,但重新密钥轮数为 可配置;因此,散列过程可以任意进行 慢,这有助于阻止对哈希或盐的暴力攻击。

关于在您的网站上存储密码,您应该在对密码进行哈希处理之前对其进行加密。

只有在使用某种加密算法(例如 Blowfish、

Rijndael / AES

)对其进行加密后,才应使用 bcrypt 对加密密码进行哈希处理,并存储密码hashes 有关实施密码安全的更多详细信息,请参阅

此问题

的最佳答案。


3
投票
bcrypt

是密码的密钥派生函数。 简单来说,散列(bcrypt 使用)和加密之间的区别是:

加密数据可以通过密钥解密。
  1. 散列是单向的,也就是说,如果对纯文本进行散列,它是不可逆的,因此更安全。执行验证的唯一方法是重新散列纯文本并将其与之前散列的数据进行比较以确保相等。
© www.soinside.com 2019 - 2024. All rights reserved.