为什么 BCrypt 生成的哈希是不确定的

2024-01-01

我过去使用过许多不同的哈希算法,我的印象是它们都是确定性的。

我刚刚将一些代码切换为使用 BCrypt.Net,我不得不承认,当我所有的比较测试都失败时,我完全被难住了。

在我的测试中寻找错误一段令人尴尬的时间后,我意识到我关于哈希值是确定性的假设是完全错误的。有一种有效的验证方法,并且很容易修复代码,但我想更好地了解发生了什么。

是在内部腌制价值观还是发生了其他事情?

  • 请注意,我在我的真实代码中加盐 - 这只是一个测试

是否在内部腌制价值观

是的。 bcrypt 不仅仅是一个原始哈希函数,它还包括盐和一些其他位,以允许在没有额外输入的情况下验证哈希值:

$2a$12$q6r.MpvzPrUszrWLgaRdlOs04kPcjk0syCDelrzES9O8.UNlHON.u
 ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^
 |  |  \- salt
 |  \---- work factor
 \------- format

您使用的 API 不会公开它,因为您通常不需要操作盐,但它就在那里,您不需要添加自己的盐。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么 BCrypt 生成的哈希是不确定的 的相关文章

  • 这段php代码安全吗?

    我知道我应该使用准备好的语句 但我的下一个项目将使用准备好的语句 我只需要完成这个简单的小应用程序 所以我的问题是 以下代码片段安全吗 我使用了 htmlentities 以及 mysql real escape string 因为我认为这
  • 用于存储应用程序用户机密的 Azure Key Vault 机密

    在我的应用程序中 我必须存储用户的非常敏感的数据 例如其他第三部分服务的各种密码 用户填写一个表格 向我们提供第三部分服务的登录名和密码 该应用程序的目标是使用从 100 多个输入生成的 powershell 脚本来设置其他复杂系统 需要将
  • PHP - Paypal API 表单和安全性 [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我在我的电子商务应用程序上使用标准 php paypal 表单进行付款 我注意到只有 firebug 的人可以在通过 立即付款 按钮发
  • http-equiv Content-Security-Policy 在浏览器中有效,但在 Android 设备上无效 - IONIC

    我正在开发一个带有 ionic 的应用程序 刚刚插入了这个 Content Security Policy 元标记 我在浏览器
  • 如何在 Jboss 7.1 中配置简单身份验证

    我正在从事由以下人员编写的项目纯jsps 脚本 不使用任何框架 jboss版本 jboss as 7 1 0 Final 我现在正在尝试在其上添加简单的身份验证 因此 当用户尝试浏览 jsp 时 比如说 http localhost myC
  • antisamy 解析器强制关闭标签

    我使用 Antisamy 来验证 HTML 我的政策允许 iframe 例如 YouTube 视频 问题是 如果标签为空 像这样 清洗后会是这样的 但它应该有正常的结束标签 这会破坏之后页面上的所有内容 我已经将指令设置为使用大部分 HTM
  • JSON 安全最佳实践?

    在研究这个问题的同时JSON 与 XML http www subbu org blog 2006 08 json vs xml 我碰到这个问题 https stackoverflow com questions 325085 when t
  • ASP.NET MVC - ValidateAntiForgeryToken 过期

    在网页中 我们提供一个超链接 GET 用户可以单击该超链接进行身份验证 Html ActionLink Please Login MyMethod MyController 这映射到以下返回视图的控制器方法 RequireHttps pub
  • (Java) 在 Mac OS X 上以编程方式访问“系统根目录”下的 SSL 证书

    我正在编写一个 Java 应用程序 它可以通过远程 Https 站点进行 REST Api 调用 远程站点由受信任的证书签名 它在 Windows 上运行良好 但由于 SSL 证书问题 在 OS X 上运行时遇到问题 我做了一些挖掘 发现原
  • 上传的白名单或黑名单文件扩展名?

    我正在制作一个新闻通讯编辑器 它将允许文件上传 新闻通讯的发件人可以将文件上传到将在电子邮件中链接到的服务器 该站点的设置使得只有 do URI 实际由 servlet 执行 处理 因此不会有太大的安全风险 但有人告诉我将 jsp php
  • 在 Spring Security SAML 身份验证请求中配置 POST ProtocolBinding

    Spring Security SAML 坚持在 SAML 身份验证请求中请求 Artifact 绑定 ProtocolBinding 属性
  • Android应用程序中的模式输入

    我想知道是否有其他替代方案可以替代 Android 上平庸的 EditText 密码输入 是否有 API 或开源代码可以集成到我的应用程序中 类似于锁屏图案解锁 Intent 可能会返回哈希值 数字 字符串或代表用户输入的模式的任何内容 我
  • php字符串是值类型吗?

    为什么php的string是值类型 每次将参数传递给函数时 每次进行赋值时 每次连接都会导致字符串被复制时 它都会被复制到各处 我的 NET 经验告诉我 它似乎效率低下 迫使我几乎在任何地方都使用引用 考虑以下替代方案 替代方案1 This
  • Cloud Firestore 安全规则使用的语言名称是什么?

    我想知道用于 Cloud Firestore 安全规则的语法名称 如下所述https firebase google com docs firestore security get started authuser 0 https fire
  • JavaScript 中的安全数据

    我必须为 Web 测试创建生成器 使用 HTML 和 JavaScript 测试必须离线和在线进行 正确答案和分数评估必须是生成的测试的一部分 最终用户的分数仅发送到服务器 无法在服务器上进行评估 并且服务器对问题一无所知 它只保存最终分数
  • 警告:您的 git 版本是 1.9.3。存在严重的安全漏洞

    我在部署到 Heroku 期间收到有关 git 1 9 3 严重安全漏洞的警告 我尝试通过 homebrew 更新 git 但发现 git 最初并不是通过 homebrew 安装的 然后我通过自制程序安装了它 brew update bre
  • 客户端登录 - 如何在客户端安全地存储凭据?

    许多 API 都提供通过用户 密码组合远程访问其数据的功能 我想知道存储这些值的最佳方式是什么 高度安全的方式 即使 100 是不可能的 以便直接连接它们而无需每次都询问这些值 我推荐以下三种方法之一 使用身份验证令牌完全避免存储密码 在此
  • 是否可以使用流上下文在 PHP 下使用 FTPS?

    我了解到使用ftpsPHP for Windows 下的 ftp ssl connect 很困难 您被要求进入构建自己的二进制文件以包括 Open SSL 的漫长旅程 我找到了以下建议phpseclib http phpseclib sou
  • 存储外部站点(不使用 OAuth)的用户凭据的智能方法是什么?

    我意识到 一般来说 您不应该直接存储用户凭据 即以纯文本形式 相反 最好存储它们的某种加密形式 但是 假设我创建了一个与其他第三方网站交互的网站 假设这个第 3 方站点提供了一个 API 需要用户的凭据 使用该站点 进行身份验证 如果我的目
  • 在 JavaScript 中生成 RSA 密钥对

    我最近发现了这个 RSA JavaScript 库 http www ohdave com rsa http www ohdave com rsa 但是 它要求预先生成密钥 这是我的问题 问题 我想在 JavaScript 中生成 RSA

随机推荐

  • Xcode - 更改项目模板

    因此 我可以为单个文件添加新模板 但我希望 Xcode 在设置新项目时使用这些文件 最明显的是 Controller 和 Delegate h 和 m 文件 我怎么做 除了您找到的各个类的模板之外 还有适用于各种项目类型的模板 如果您只想替
  • 根据 TypeScript 验证 JSON

    我们使用 JSON 文件来配置一些 Web 应用程序 显然在字段名称等方面出现了错误 是否可以使用 TypeScript 定义验证 JSON 文件 或者我们应该将配置迁移到其他格式 我们同时使用Intellij和VSCode进行开发 定义示
  • 将 pdf 转换为单页可编辑 html

    我一直在努力将 pdf 文件转换为单个漂亮的 html 页面网上冲浪了一下 我得到的解决方案有点缺乏我的要求 因为我必须为大约 200 个 pdf 文件创建单独的 html 页面 因为在线转换器可能不是一个领先的解决方案 所以我尝试了以下解
  • QOpenGLWidget 与 QApplication?

    我们有一个基于 QWidget 的应用程序 之前使用 QWindow 进行 OpenGL 渲染 为了使该窗口适合我们的应用程序 我们必须使用 QWidget QWidget createWindowContainer QWindow 以前我
  • 为 ObjectBoundingBox 导出 SVG

    我对 SVG 的经验很少 我正在尝试保存来自 illustrator 的路径 以便它可以用作响应式剪贴蒙版 其大小相对于其父级 使用clipPathUnits objectBoundingBox 但是 Illustrator 似乎不允许我在
  • 新 luarock 的正确 Rockspec 文件名是什么?

    根据这个页面 http luarocks org en Creating a rock http luarocks org en Creating a rock 这应该保存在名为 luafruits 1 0 1 rockspec 的文件中
  • Nuget 包...项目中不存在...包...文件夹中已存在

    我已经与这个错误斗争了几个小时 但无法找到有效的解决方案 我在多项目解决方案中有一个 ASP Net API 其引用 依赖项配置不正确 我已经尝试修复它两天了 问题是 我相信 该 API 缺少 System Web Http System
  • C++ 挂钩 winsock

    我正在尝试挂接winsock send 和recv 以读取进程的所有流量 我将以下代码作为 dll 注入目标进程中 include dll h include
  • UIDatePicker,根据今天的日期设置最大和最小日期

    如果我有一个 UIDatePicker 并且我希望将最小和最大日期范围设置为三十年前和未来三十年之间 我将如何设置 未经测试 但您可能想要这样的东西 NSCalendar calendar NSCalendar alloc initWith
  • 如何在CTR模式下寻找并解密部分码流?

    我对 cryptopp 中的部分解码有疑问 使用 AES 256 CTR 编码源 CTR Mode lt AES gt Encryption e e SetKeyWithIV key 32 iv string encrypt string
  • 在 Django 中提供大文件(高负载)

    我一直在使用一种提供下载服务的方法 但由于它不安全 我决定更改它 该方法是指向存储中的原始文件的链接 但风险在于知道该链接的每个人都可以下载该文件 所以我现在通过我的视图提供该文件 这样只有具有权限的用户才能下载该文件 但我注意到服务器上的
  • Angular 文件夹结构和组件服务

    我读过很多关于 Angular 文件夹结构的文章 我仍然不清楚我们将组件服务放在哪里 组件之间的共享服务被置于共享之下 但是如果服务仅由组件使用呢 通常我将所有组件逻辑放入一个服务中 并让组件保留仅与 UI 内容相关的代码 使用哪一种更好
  • zend 扩展到底是什么?

    如果你看本文档 http php net manual fr function get loaded extensions php 第一个参数仅返回 Zend 扩展 与 PHP 简单 扩展相比 Zend 扩展到底是什么 Zend 扩展连接到
  • Visual Studio 附加库?

    我希望找到一些 Visual Studio 的附加组件来解决一些特定的可用性问题 是否有一个 Visual Studio 插件库 其中包含每个人 公司 雅虎和乡巴佬创建的巨大插件垃圾场 就像Vista 侧边栏小工具库 http vista
  • NodeJS - 从可读流中查看数据事件,而无需从可写流中相应暂停

    我们发现生产中的一些流的内存使用率极高 文件存储在 S3 中 我们在 S3 对象上打开一个可读流 然后将该数据通过管道传输到本地文件系统 在我们的 EC2 实例上 上的文件 我们的一些客户拥有非常大的文件 在一个实例中 他们有一个大小超过
  • Gradle 无法添加编译 'com.google.android.gms:play-services:7.0.0'

    我不敢相信没有人找到解决这个问题的方法 我想向我的应用程序添加一个横幅 但 Android Studio 的 Gradle 系统试图让我相信这不是一个好主意 它看起来像这样 apply plugin com android applicat
  • 使用对文件中定义的引用来填充 SVG 图案

    尽管 W3 规范 以下尝试制作带有图案填充的矩形似乎在 Safari 6 1 Firefox 30 或 Chrome 36 中不起作用似乎在说 http www w3 org TR SVG linking html IRIforms我可以使
  • 如何显示查询结果

    查询后我尝试显示数据 我只能接收来自 field 1 的数据 从 field 2 和 field 没有 如何修复它 if result die Query to show fields from table failed fields nu
  • 无法使用clangd读取linux内核代码

    我有一些关于Linux内核驱动程序的代码 我用熊使生成compile commands json 这是我的一些compile commands json directory usr src linux headers 5 4 0 90 ge
  • 为什么 BCrypt 生成的哈希是不确定的

    我过去使用过许多不同的哈希算法 我的印象是它们都是确定性的 我刚刚将一些代码切换为使用 BCrypt Net 我不得不承认 当我所有的比较测试都失败时 我完全被难住了 在我的测试中寻找错误一段令人尴尬的时间后 我意识到我关于哈希值是确定性的