L'algorithme de hachage BCrypt est une fonction de hash issu à la base de l'algorithme blowfish Sa création est attribuée à deux personnes, Niels Provos et David Mazières. Cette fonction de hachage a plusieurs avantages. Tout d'abord elle utilise nativement un salt (un salt est une séquence qu'on va rajouter à un password pour en améliorer la sécurité), le salt est généré aléatoirement, ce qui empêche la création de look-up tables, comme celles que nous utilisons sur ce site pour les fonctions de hachage moins secure (md5, sha1, etc). En fait, une look-up table est possible mais elle demanderais un espace de stockage phénoménal, ainsi qu'une puissance de calcul immense pour sa création, puisqu'il faudrait stocker tous les salts possibles. La consultation d'une telle table demanderait aussi des ressources considérables. De ce fait le decrypt Bcrypt est très compliqué par rainbow tables.
L'autre avantage de l'encryption BCrypt est que l'on peut choisir le nombre d'itérations pour le rendre plus lent et donc plus difficile encore à bruteforcer. Avec l'avancée des capacités hardware, on peut imagine un jour une puissance de calcul suffisante pour rendre le BCrypt moins secure, mais pour le moment, cela reste une des fonctions de hachage les plus difficiles à casser.