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

◇◆丶佛笑我妖孽 提交于 2019-12-04 22:33:40

It is both :)

Most of the time when people mention BCrypt, they are talking about the adaptive hash algorithm, but it is also the name of an unrelated file encryption utility.

Both are based on the Blowfish cipher.

Rob

Bcrypt encryption software uses the Blowfish algorithm designed by Bruce Schneier in 1993. [1]

The bcrypt hash function is just that, a hash function. It does not perform encryption, it hashes. It's based on the Blowfish cipher, and is considered a good thing because you can make it slower over time.

From Wikipedia:

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.

In regards to storing passwords on your site, you should be encrypting passwords before you hash them.

Only after you encrypt them with some encryption algorithm (e.g. Blowfish, Rijndael / AES) should you use bcrypt to hash the ciphered passwords, and store the password hashes.

For more details on implementing password security, see the top answer to this question.

bcrypt is a key derivation function for passwords

Also difference between hashing(used by bcrypt) and encryption in simple words will be -

1) encrypted data can be decrypted via private key. 2) Hashing is one way that is if you hash the plain text its irreversible, hence more secure. The only way to ensure is rehash the plain text and compare it with previously hashed data for equality.

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!