关于安全性:Bcrypt是用于散列还是加密?

Is Bcrypt used for Hashing or Encryption? A bit of confusion

我一直在读关于bcrypt的文章(应用前景)。想用它在我的网站上存储密码。

在我读到的一些文章中,它提出了两种方法:

  • e.g. 1: Bcrypt is a cross platform file encryption utility from bcrypt
  • e.g. 2: bcrypt is an adaptive password hashing algorithm which uses the Blowfish keying schedule, not a symmetric encryption algorithm. from How To Safely Store A Password
  • bcrypt is an adaptive cryptographic hash function for passwords designed by Niels Provos and David Mazières, based on the Blowfish cipher: from bcrypt wiki

Bcrypt到底是什么?


两者都是:

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

两者都是基于河豚密码。


Bcrypt加密软件使用BruceSchneier于1993年设计的Blowfish算法。〔1〕

bcrypt散列函数就是散列函数。它不执行加密,而是散列。它是建立在河豚密码的基础上的,并且被认为是一件好事,因为随着时间的推移,你可以使它变慢。

维基百科:

This is not cryptographically significantly stronger than the standard
Blowfish key schedule, but the number of rekeying rounds is
configurable; the hashing process can therefore be made arbitrarily
slow, which helps deter brute-force attacks upon the hash or salt.

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

只有在使用某种加密算法(如Blowfish、Rijndael/AES)对它们进行加密之后,才能使用bcrypt散列加密密码,并存储密码散列。

有关实现密码安全性的更多详细信息,请参阅此问题的首要答案。


bcrypt是密码的密钥派生函数

此外,散列(由bcrypt使用)和简单单词加密之间的区别将是-

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