Security Bcrypt用于散列还是加密?有点混乱

Security Bcrypt用于散列还是加密?有点混乱,security,encryption,hash,blowfish,bcrypt,Security,Encryption,Hash,Blowfish,Bcrypt,我一直在阅读关于bcrypt(应用程序透视图)的文章。正在考虑使用它在我的网站上存储密码 在我读到的一些资料中,它提出了两种方式: e、 g.1:Bcrypt是一个跨平台的文件加密实用程序 e、 g.2:bcrypt是一种自适应密码哈希算法,它使用Blowfish密钥调度,而不是对称加密算法。从 bcrypt是一种用于密码的自适应加密哈希函数,由Niels Provos和David Mazières设计,基于河豚密码:from Bcrypt到底是什么?两者都是:) 大多数时候,当人们提到BC

我一直在阅读关于
bcrypt
(应用程序透视图)的文章。正在考虑使用它在我的网站上存储密码

在我读到的一些资料中,它提出了两种方式:

  • e、 g.1:Bcrypt是一个跨平台的文件加密实用程序
  • e、 g.2:bcrypt是一种自适应密码哈希算法,它使用Blowfish密钥调度,而不是对称加密算法。从
  • bcrypt是一种用于密码的自适应加密哈希函数,由Niels Provos和David Mazières设计,基于河豚密码:from
Bcrypt到底是什么?

两者都是:)

大多数时候,当人们提到BCrypt时,他们谈论的是,但它也是一个的名字


两者都基于Blowfish密码。

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

bcrypt散列函数就是一个散列函数。它不执行加密,而是散列。它基于河豚密码,被认为是一件好事,因为你可以

来自维基百科:

这在密码学上并不明显强于标准 Blowfish密钥计划,但更改密钥的次数为 可配置;因此,可以任意进行散列处理 慢,这有助于阻止对哈希或盐的暴力攻击

关于在站点上存储密码,您应该在散列密码之前对密码进行加密

只有在使用某种加密算法(如河豚)对密码进行加密后,才应使用bcrypt对加密后的密码进行散列,并存储密码散列


有关实现密码安全性的更多详细信息,请参阅。

bcrypt是密码的密钥派生函数

此外,散列(由bcrypt使用)和简单字加密之间的区别将是-

1) 加密数据可以通过私钥解密。
2) 散列是一种方法,即如果对纯文本进行散列,则它是不可逆的,因此更安全。唯一可以确保的方法是重新刷新纯文本,并将其与以前的哈希数据进行比较,以确保相等。

那么,你的意思是说,当我使用bcrypt存储密码时,我将使用
自适应哈希算法。是的,只要你选对了。我在我的答案中添加了(你的)链接,希望能让区别更清楚。很好。我实际上有问题中提到的相同链接。:)他的名字是“Schneier”,不是“Schneider”。吹毛求疵:)在散列之前你不需要加密。@PaulG如果你也加密的话,它确实会增加额外的安全级别,并且被认为是良好的做法,只要你将密钥存储在另一台服务器上,或者如果这太贵,在远程服务器本地文件系统上的文本文件中。@PaulG此链接介绍了salt散列和使用密钥加密salt散列的最佳实践。BCrypt只是salt散列的一种更方便的方式,因为salt不需要数据库存储:@CharlesRobertson-为什么在散列之前加密密码会使它更安全?让它在计算上更昂贵?Bcrypt在这方面已经可以进行调整。这会使散列的值变长,但使用更长的salt可以实现同样的效果。我确实读过你的链接,据我所知,它没有提到这个过程。Stack Overflow是一个关于编程和开发问题的网站。这个问题似乎离题了,因为它与编程或开发无关。请参见帮助中心中的。也许或者会是一个更好的提问地点。@jww 5年后,这个问题没有被标记为离题。