Hashing algorithms are widespread used in software development. But usually people don’t know, how they work and why you cant to decrypt hash value. I’ll try to explain it in this article.
FYI: Bcrypt is based on symmetric cipher blowfish, which means that resulting hash is not hash itself so it can be decoded if you know a key. The problem is that the key cannot be extracted or obtained in some way because it generation is dynamic and based on the word (message) that you want to hash.
The other deal is block hashes as MD5, SHA1, SHA2 which are build without symetric ciphers. They are standalone solutions and works pretty interesting. They use multiple rounds and splitting message to blocks which means that once message transforms into sub-messages and then they all are multiply processed in some way. This looks much like chess. You cannot get the right position of figures for some big amount of movements ago – just because there are a lot of possible combinations and you simply cannot guess the right one.