General | |
---|---|
Designers | Niels Provos, David Mazières |
First published | 1999 |
Derived from | Blowfish (cipher) |
Detail | |
Digest sizes | 184 bit |
Rounds | variable via cost parameter |
bcrypt is a password-hashing function designed by Niels Provos and David Mazières, based on the Blowfish cipher and presented at USENIX in 1999.[1] Besides incorporating a salt to protect against rainbow table attacks, 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 attacks even with increasing computation power.
The bcrypt function is the default password hash algorithm for OpenBSD,[2][non-primary source needed] and was the default for some Linux distributions such as SUSE Linux.[3]
There are implementations of bcrypt in C, C++, C#, Embarcadero Delphi, Elixir,[4] Go,[5] Java,[6][7] JavaScript,[8] Perl, PHP, Ruby, Python, Zig[9] and other languages.
minimal change to implementation of bcrypt to not require static globals
SUSE's crypt() implementation supports the blowfish password hashing function (id $2a) and system logins by default also use this method.