Bcrypt用于散列或加密吗?有点混乱

Thi*_*key 19 security encryption hash blowfish bcrypt

我一直在阅读bcrypt(应用程序视角).考虑使用它来存储我的网站上的密码.

在我阅读的一些内容中,它提出了两种方式:

  • 例如1:Bcrypt是来自bcrypt的跨平台文件加密实用程序
  • 例如2:bcrypt是一种自适应密码散列算法,它使用Blowfish密钥调度,而不是对称加密算法.从如何安全存储密码
  • bcrypt是由Niels Provos和DavidMazières设计的密码自适应加密哈希函数,基于Blowfish密码:来自bcrypt wiki

究竟什么是Bcrypt?

Pau*_*ulG 20

它们都是:)

大多数时候,当人们提到BCrypt时,他们谈论的是自适应散列算法,但它也是不相关的文件加密实用程序的名称.

两者都基于Blowfish密码.


Rob*_*Rob 9

Bcrypt加密软件使用Bruce Schneier在1993年设计的Blowfish算法.[1]

bcrypt哈希函数就是哈希函数.它不执行加密,它哈希.它基于Blowfish密码,并且被认为是一件好事,因为随着时间的推移你可以让它变慢.

来自维基百科:

这在加密方面并不比标准的Blowfish关键时间表强大,但重新加密轮次的数量是可配置的; 因此,散列过程可以任意慢,这有助于阻止对散列或盐的暴力攻击.

关于在您的站点上存储密码,您应该在对密码进行哈希处理之前加密密码.

只有在使用某种加密算法(例如Blowfish,Rijndael/AES)对它们进行加密后,才应使用bcrypt对加密密码进行哈希处理,并存储密码哈希值.

有关实施密码安全性的更多详细信息,请参阅此问题的最佳答案.

  • 要挑剔:)你不需要在散列之前加密. (8认同)
  • 他的名字是'Schneier',而不是'Schneider'. (2认同)
  • @CharlesRobertson - 为什么在散列之前加密密码会让它更安全?为了使它在计算上更昂贵?在这方面,Bcrypt已经可以调整了.它会使值更长,但使用更长的盐会达到同样的效果.我确实阅读了你的链接,就我所见,它没有提到这个过程. (2认同)