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.
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,[non-primary source needed] and was the default for some Linux distributions such as SUSE Linux.
There are implementations of bcrypt in C, C++, C#, Embarcadero Delphi, Elixir, Go, Java, JavaScript, Perl, PHP, Ruby, Python, Rust, V (Vlang), Zig and much other languages.
The input to the bcrypt function is the password string (up to 72 bytes), a numeric cost, and a 16-byte (128-bit) salt value. The salt is typically a random value. The bcrypt function uses these inputs to compute a 24-byte (192-bit) hash.
More info: https://en.wikipedia.org/wiki/Bcrypt