我一直在阅读bcrypt
(应用程序视角)。考虑使用它来存储我的网站上的密码。
我读到的一些东西中提出了两种方式:
- e.g。 1:Bcrypt是bcrypt
的跨平台文件加密实用程序- e.g。 2:bcrypt是一种自适应密码散列算法,它使用Blowfish密钥调度,而不是对称加密算法。来自How To Safely Store A Password
- bcrypt是由Niels Provos和DavidMazières设计的密码的自适应加密哈希函数,基于Blowfish密码:来自bcrypt wiki
Bcrypt究竟是什么?
答案 0 :(得分:19)
两者都是:)
大多数时候,当人们提到BCrypt时,他们谈的是adaptive hash algorithm,但它也是unrelated file encryption utility的名称。
两者都基于Blowfish密码。
答案 1 :(得分:8)
Bcrypt加密软件使用Bruce Schneier在1993年设计的Blowfish算法。[1]
bcrypt哈希函数只是一个哈希函数。它不执行加密,它哈希。它基于Blowfish密码,被认为是一件好事,因为你可以make it slower over time。
来自维基百科:
这在加密方面并不比标准强 Blowfish关键时间表,但更换轮次数是 配置;因此,可以任意地进行散列处理 慢,这有助于阻止暴力或盐的暴力攻击。
关于在您的网站上存储密码,您应该在对密码进行哈希处理之前加密密码。
只有在使用某种加密算法(例如Blowfish,Rijndael / AES)对其进行加密后,才应使用bcrypt对加密密码进行哈希处理,并存储密码哈希。
有关实施密码安全性的更多详细信息,请参阅this question的最佳答案。
答案 2 :(得分:3)
bcrypt是密码的密钥派生函数
散列(由 bcrypt 使用)和简单单词加密之间的区别也是 -
1)加密数据可以通过私钥解密。 2)散列是一种方式,如果你将纯文本散列为不可逆转的,因此更安全。确保唯一的方法是重新整理纯文本,并将其与先前散列的数据进行比较以确保相等。