Skip to content
CyberXplained

bcrypt Password Hashing Explorer

CoreHash

Interactive bcrypt Hashing

Enter your password, adjust the number of salt rounds, and generate a bcrypt hash.

bcrypt Hashing

*Increase the salt rounds to make the hashing process take more time, which enhances the security by making it harder to break the hash.

About bcrypt

Description

bcrypt is a password hashing function designed by Niels Provos and David Mazières in 1999. It's based on the Blowfish cipher and has been adopted as the default password hash algorithm for OpenBSD and other systems. bcrypt is an adaptive function: over time, the iteration count can be increased to make it slower, so it remains resistant to brute-force search attempts even with increasing computation power.

How it Works

  1. A salt is generated - a random value which is used as an additional input to the hashing function.
  2. The salt is combined with the password.
  3. The resulting value is hashed multiple times using a modified version of the Blowfish cipher.
  4. The number of iterations is determined by the "cost factor" or "salt rounds".
  5. The final output includes the salt, cost factor, and the hashed value, allowing for easy verification without storing the original password.

Strengths

  • Slow by design, making brute-force attacks impractical
  • Includes salt to protect against rainbow table attacks
  • Adaptive - can be made slower over time as computing power increases
  • Resistant to length extension attacks

Considerations

  • Computationally intensive, which can impact system performance if not properly managed
  • Fixed output length (60 characters) regardless of input size
  • Not suitable for hashing large amounts of data due to its intentional slowness

Historical Context

bcrypt was presented at USENIX in 1999 as a solution to the need for an adaptive hashing algorithm for passwords. It was designed to replace earlier Unix password hashing algorithms like MD5crypt, which had become vulnerable to brute-force attacks due to increasing computational power.

Modern Applications

bcrypt remains widely used for password hashing in many systems and web applications. It's considered one of the most secure ways to store passwords, along with other modern algorithms like Argon2 and scrypt. Many programming languages and frameworks provide built-in support or libraries for bcrypt, making it easy to implement secure password storage in applications.

How Bcrypt Hash Looks Like

Bcrypt Algorithm Diagram