问题标签 [bcrypt]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
security - bcrypt 如何比增加 SHA 迭代次数更具未来性?
我一直在研究 bcrypt 哈希,当然,该方案的一大好处是它的“适应性”。但是,与简单地增加对 SHA-1 哈希进行的迭代量相比,它如何变得更具适应性?比如说,不是 SHA-1 对一个值进行 1000 次散列,而是将其增加到 10,000 次迭代。这不是达到同样的目标吗?是什么让 bcrypt 更具适应性?
ruby-on-rails-3 - 最安全的设计配置是什么?
我即将开始在我们公司设置一个仅限员工使用的 Rails 应用程序,用于处理敏感信息。会有防火墙、物理安全措施等。我现在关心的是应用程序的登录过程。
我想使用 Devise 进行身份验证。Devise 最安全的配置是什么?
我想我会做以下事情:
- 在少量失败的登录尝试后锁定帐户
- 使用
config.paranoid
这样攻击者就无法判断他们是否猜到了一个有效的电子邮件地址 - 也许通过电子邮件禁用密码重置?
一些我不确定的具体事情,用devise.rb
斜体引用:
- 胡椒。设计有一个选项“设置一个辣椒来生成加密密码”。我的理解是,这是一个单一的、特定于应用程序的值,它将“password123”之类的愚蠢密码转换为“password123K#(!@akdlwekdf”或“*%!kd39gpassword123”之类的东西,或者在散列之前的任何东西。这是为了阻止彩虹表攻击,但我从这篇文章的理解是它不如每个密码唯一的盐。再说一遍,这篇文章和这篇论文说bcrypt内置了盐。使用bcrypt的胡椒真的有什么好处吗?我可以,是否有必要,也有一个盐柱?
- 伸展。“对于 bcrypt,这是散列密码的成本,默认为 10。” 基于这个问题,我正在考虑使用 12 的工作系数。这看起来合理吗?
- 密码长度。一般来说,较长的密码似乎更安全,但我不希望它太难以至于用户将其写在某处的一张纸上。如果我们使用 bcrypt,密码长度是否很重要?
- SSL cookie。对于启用 SSL 的公共应用程序,将 cookie 标记为“只能通过 HTTPS 传输”可以防止Firesheep式攻击。但我不确定拥有一个内部应用程序的安全证书有多大意义。这很傻吗?
我还缺少什么?
security - bcrypt 怎么能有内置的盐?
Coda Hale 的文章“如何安全地存储密码”声称:
bcrypt 内置了盐以防止彩虹表攻击。
他引用了这篇论文,其中说在 OpenBSD 的实现中bcrypt
:
OpenBSD 从一个 arcfour (arc4random(3)) 密钥流生成 128 位 bcrypt salt,并使用内核从设备时序收集的随机数据播种。
我不明白这是怎么回事。在我对盐的概念中:
- 每个存储的密码都需要不同,因此必须为每个密码生成单独的彩虹表
- 它需要存储在某个地方以便可重复:当用户尝试登录时,我们会尝试输入他们的密码,重复我们最初存储密码时所做的相同的盐和哈希过程,然后比较
当我使用带有 bcrypt 的 Devise(Rails 登录管理器)时,数据库中没有 salt 列,所以我很困惑。如果盐是随机的并且没有存储在任何地方,我们如何可靠地重复散列过程?
简而言之,bcrypt 怎么能有内置的 salts呢?
node.js - NodeJS:bcrypt 与原生加密
有人可以指出两者之间的区别以及使用每种情况的示例情况吗?
bcrypt 看起来很棒。
javascript - 您可以使用 browserify 来要求 node-bcrypt 客户端,然后将哈希发送到服务器吗?
您可以使用 browserify 来要求 node-bcrypt 客户端,然后将哈希发送到服务器吗?
这听起来真的很棒,还是它实际上可以提供更多的安全性,然后通过 SSL 将纯文本传递给服务器?如果我们通过 websockets 传递明文怎么办?
谢谢!
php - 有没有办法在 PHP 5.2 中使用 bcrypt“散列”?
我正在运行一个带有密码哈希的网站,但我认为当前的算法是不够的。我尝试将 PHP 的 crypt() 与 blowfish 选项一起使用,但我的 PHP 版本只有 5.2,因此未启用 CRYPT_BLOWFISH。
我见过可以通过 Blowfish 加密的 3rd 方库,但没有一个库可以进行完整的 Bcrypt 散列。您知道有没有不使用 crypt() 函数而具有 bcrypt 散列的 PHP 库?或者,更好的是,将第 3 方河豚加密算法输入第 3 方 bcrypt 散列算法的任何方法?
澄清一下,我无法安装更新版本的 PHP,因为我在共享主机上。
我真的很感激任何建议!谢谢!
codeigniter - 使用 Code Igniter 存储密码的最安全方法是什么?
我正在为我当前的项目使用 Code Igniter。
到目前为止,我正在使用MD5进行密码散列,但我在很多地方都读过,这样做不是一个好习惯。
我应该带什么去?
- 使用盐
- 或者我应该使用bcrypt
另外,如果推荐使用bcrypt,那么如何将它与 Code Igniter 一起使用?
编辑
我已将这些文件放入application/libraries
- 密码哈希.php
- c/Makefile
- c/crypt_private.c
在我的控制器中,我正在使用此代码 -
我收到这些错误 -
更新
已删除PasswordHash.php
,现在使用SimpleLoginSecure。
ruby-on-rails - PHP 和 Bcrypt
我正在使用 PHP 开发 API。我想要从中迁移的 API 的先前版本是使用 Rails 3 构建的。
我只有一个问题。用户存储的密码使用以下技术加密。
我怎样才能在 PHP(Codeigniter)中做同样的事情,以便用户可以继续使用他们的旧密码?
感谢所有帮助!
php - 随机盐 + 散列通行证或随机盐 + crypt()'ed 通行证?
我正在尝试为我的网站制作一个或多或少安全的登录系统,我没有太多时间来保护东西,所以我边走边学。想听听一些关于以下哪个更好以及为什么的观点。(或者我在某个地方犯了错误?)
或者(不需要在数据库中使用 $salt ......)
或(我也需要数据库中的 $salt ......)
hash - bcrypt 和多次散列有什么区别?
bcrypt比,比如说,
鉴于它的炒作,我有一种感觉,比我更聪明的人已经发现 bcrypt 比这更好。有人可以解释“聪明的外行”术语的区别吗?