问题标签 [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.
php - 如何在 PHP 中使用 bcrypt 对密码进行哈希处理?
我时不时听到“使用 bcrypt 在 PHP 中存储密码,bcrypt 规则”的建议。
但什么是bcrypt
?PHP 不提供任何此类功能,Wikipedia 喋喋不休地谈论文件加密实用程序,而 Web 搜索仅揭示了Blowfish在不同语言中的一些实现。现在 Blowfish 也可以通过 PHP 在 PHP 中使用mcrypt
,但是这对存储密码有什么帮助呢?Blowfish 是一种通用密码,它有两种工作方式。如果可以加密,就可以解密。密码需要一种单向散列函数。
解释是什么?
ruby - 在多个操作系统上要求“bcrypt”失败,我错过了什么?
我正在尝试使用简单的身份验证来替换我在小型 Sinatra 应用程序中使用的 HTTP-Auth。bcrypt-ruby gem 安装良好,但require 'bcrypt'
总是抛出错误:no such file to load -- bcrypt
. 我已经在我的 gem 列表中确认了安装,另一个 gem 从来没有出现过类似的错误,虽然有相当多的 bcrypt & not found 错误的搜索结果,但没有一个提供解决方案。
c# - 在哪里可以找到有关 BCrypt for .NET 的文档?
我使用 NuGet 来获取 BCrypt 库并正确安装。现在我想了解它以及如何使用它,但我似乎找不到任何文档。
即使搜索库命名空间也没有结果:
关于在哪里可以找到一些示例,甚至是普通的旧文档的任何建议?我正在使用 C#。
c# - 有人可以解释 BCrypt 如何验证哈希吗?
我正在使用 C# 和 BCrypt.Net 来散列我的密码。
例如:
如果 BCrypt 没有在任何地方保存盐,它如何使用哈希验证密码。我唯一的想法是它以某种方式在哈希末尾添加了盐。
这是一个正确的假设吗?
.net - 首选 BCrypt.Net 实现
BCrypt.net 有几个不同的端口,很难说哪个是“最好的”。
有没有人花时间审查它们并就光顾哪个项目得出任何结论?我最感兴趣的是哪个拥有最活跃的开发者社区。当然,功能集、有效性、简单性和文档也很好:)
这是我能够追踪到的 BCrypt.Net 实现列表:
据我所知,这是第一个端口,并且有一段时间没有更新。0.1版
用户将 Derek Slager 的副本发布到 google 代码并进行了一些改进。0.3版
Visual Studio 唯一的 NuGet 版本,它是一个没有源代码的编译副本,所以我无法确定它的任何信息。它似乎支持仅在 0.3 版 Google 代码版本中可用的新功能。它没有列出任何支持站点,我不知道它是否是开源的并且没有任何类型的归属(有点粗略)。1.0 版,213 次下载。
这似乎是一个完全独立的端口,与 Derek Slager 的端口无关。它似乎有一些半定期更新。版本 R5,140 次下载。
这份清单是否完整?有什么理由选择一个而不是另一个吗?
.net - bcrypt的.Net实现,它实现了HashAlgorithm?
我希望在我的身份验证库中允许 bcrypt 支持。现在的问题之一是我假设 hasher 将是 type HashAlgorithm
。Bcrypt.net 没有实现这个类。此外,它是密封的,所以我必须自己制作分支并自己修改它。有没有更好的替代方案已经实现了 HashAlgorithm?
passwords - bcrypt——跟上摩尔定律
我正在使用bcrypt将密码存储在我的数据库中,使用 7 的工作系数,在我相当现代的笔记本电脑上散列一个密码大约需要 0.02 秒。
Coda Hale 说,使用 bcrypt 可以通过调整工作因子来“跟上摩尔定律”。但是没有办法重新加密用户的密码,因为我没有存储明文。如何使我的数据库保持最新并且难以破解(假设它存在 5 年以上,这将成为一个问题)?
mysql - 我应该使用什么列类型/长度将 Bcrypt 散列密码存储在数据库中?
我想在数据库中存储一个散列密码(使用 BCrypt)。什么是一个好的类型,哪个是正确的长度?使用 BCrypt 散列的密码是否总是相同的长度?
编辑
示例哈希:
$2a$10$KssILxWNR6k62B7yiX0GAe2Q7wwHlrzhF3LqtVvpyvHZf0MwvNfVu
在对一些密码进行哈希处理后,BCrypt 似乎总是生成 60 个字符的哈希值。
编辑 2
很抱歉没有提到实施。我正在使用jBCrypt。
ruby-on-rails - Rails 3 设计通过更多的加密“延伸”来停止
每当我输入config.stretches = 20
时config/initializers/devise.rb
,服务器都会在加密请求上超时。
响应时间在 15 段是可以忍受的,然后随着我提高段值而迅速增加,并在 19 时变得完全无法使用。我不太了解这个值可能对性能产生的影响,但它肯定不应该是指数级的,这是我所经历的。显然我不需要为除了 authlogic 兼容性之外的任何东西提高这个值,但无论如何它似乎是错误的。
我通过全新安装https://github.com/plataformatec/devise_example/验证了这一点。
在 Ubuntu 11.04、任何 3.0.x rails 版本、3.1.0.beta1、devise 1.3.1 和 1.3.4、mysql、pg、sqlite 驱动程序上观察到此行为。这对加密器 brcypt
同样适用。sha1
c# - iOS中没有bcrypt实现......可以使用其他语言,创建静态库吗?
Objective-C中没有直接的 bCrypt ( http://codahale.com/how-to-safely-store-a-password/ ) 实现,虽然有 C 代码可以做到这一点,但它专门用于 x86 处理器,依赖于 BSD 库。
我正在构建一个 iOS 应用程序,它与相应的在线(.NET 和 HTML5+Javascript)应用程序共享相同的密码哈希。
我还不是应该去的地方,在那里我可以阅读非常简单的 Java 代码(http://www.mindrot.org/projects/jBCrypt/)并将其转换为适合 iOS 开发的 Objective-C 代码。
但是,有一个 Ruby 实现(https://github.com/codahale/bcrypt-ruby),我听说您可以使用 Ruby 构建 iOS 应用程序。然后我可以将 Ruby 代码滚动到静态库中,并将其链接到我的 iOS 项目吗?或者,甚至使用 Mono 并利用 .NET 实现(也是一个干净、纯代码、无依赖的项目)来构建一个静态库?
或者,最后,有人知道 bCrypt 代码的 Objective-C 实现吗?看起来很简单,我只是对 .NET/C#/Ruby 了解不够,无法自己翻译。