Bcrypt加密软件使用Bruce Schneier于1993年设计的Blowfish算法。[1]
Bcrypt哈希函数只是一个哈希函数。它并不执行加密,而是进行哈希处理。它基于Blowfish密码,并被认为是一种好东西,因为您可以随着时间的推移使其变慢。
维基百科解释说:
这与标准的Blowfish密钥调度在密码学上没有显着差异,但重新钥匙轮数是可配置的;因此,哈希处理可以任意变慢,有助于防止针对哈希或盐的暴力攻击。
关于在网站上存储密码,应该先对密码进行加密,然后再进行哈希处理。
只有在使用某些加密算法(例如Blowfish,Rijndael / AES)对密码进行加密之后,才应使用bcrypt对加密后的密码进行哈希处理,并存储密码哈希值。
有关实现密码安全的更多细节,请参见此问题的顶部答案。
bcrypt是一种密码键导出函数。
简单来说,哈希(由bcrypt使用)和加密的区别如下:
1)加密数据可以通过私钥解密。 2)哈希是一种单向加密,如果您对纯文本进行哈希,则无法逆转,因此更加安全。唯一的确保方法是重新哈希该纯文本,并将其与以前哈希的数据进行比较,以确定相等性。