springsecurity的BCryptPasswordEncoder解密的疑问?

springsecurity的BCryptPasswordEncoder加密的盐都是最后拼接在前面的,那黑客就能轻易拿到盐吧。
而且每次加密结果都不同,为什么还能比较成功呢?
难道每次不同是盐的不同,真实密码加密每次结果都是一样的,拿到最后的盐再拼接需要校验的密码的加密结果后就是加密密码了? 那这样黑客也能拿到盐,再将密码去除盐后根据BCrypt算法逆运算,不就解密了吗?
语言组织很乱,不知道大佬能不能理解我的想法哈。。。

以我对 https 的基本的流程的理解,个人看法是:
首先,这个加密过程是在服务器端内存中进行的,不太容易被黑客破解。
其次,校验时有一个逆向解密过程,所以能保证验证流程的正确。

BCrypt是不可逆加密,拿到salt也无法还原明文密码