PHP的password_hash函数值对于每个字符串都不相同

2024-02-03

我尝试使用散列用户密码密码哈希()PHP函数。但是,它的函数是工作散列,而不是常量。

<?php 
    echo password_hash('a',PASSWORD_BCRYPT,array(
            'cost' => 12
         ));
?>

第四次测试结果

1. $2y$12$SRmipqM7AsYkx3Xc8QGHNex69rGXeVyWGTYrh9T8sh1cP3UrdjfQi
2. $2y$12$zx.GUgtcake3wMfl3/YXXeG1.8mmHKyRruL3nWj8OmA.RbEYqeW6u
3. $2y$12$XQtmFplcehkgWLbGrOUsNOlXDU/NGrwZlt3HM88hLbUHXhjXNF4km
4. $2y$12$q9/OSZdDJw7af4Hw4MGlHeY7UMtWr9/Cj0nj/N6PaoilNoUBePt7O

正如一些人建议使用 MD5 一样,不要将其用于密码哈希。

现在回答你的问题how to check a password matches

Password_Hash()是生成一个密码散列,这将用它创建一个随机盐,该散列将在散列时使用。 你的最终结果是:盐+哈希,however你可以给它一个salt在它的选项中使用此方法,但让我们保留它自己执行的操作。

Password_Verify()使用一个参数作为密码,一个参数作为散列密码。 正如我之前所说,哈希密码是 salt+hash 这是有道理的Password_Verify()只需要这些而不需要额外的调用salt

那么会发生什么Password_Verify()是它取出盐并使用Password_Hash()用那个盐。 然后检查接收到的哈希值是否等于给定的哈希值。 如果匹配则为 true,否则为 false。

Password_Hash() 文档 http://php.net/manual/en/function.password-hash.php

Password_Verify() 文档 http://php.net/manual/en/function.password-verify.php


更新日期 18-04-2018(日-月-年)

WARNING

盐选项已已弃用 as of PHP 7.0.0.

现在最好只使用默认生成的盐。

有关盐腌的更多信息 - SO Answer 下面由 Veve https://stackoverflow.com/a/28626635/3504247

为什么不使用 MD5 进行密码哈希 - PHP 常见问题解答 http://php.net/manual/en/faq.passwords.php#faq.passwords.fasthash

为什么不使用 MD5 进行密码哈希 - SO 答案:Silverlightfox https://stackoverflow.com/a/30502701/3504247

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

PHP的password_hash函数值对于每个字符串都不相同 的相关文章

  • 合并 url 中的 2 个输入值

    我有这样的形式
  • PHP 正则表达式匹配字符串的最后一次出现

    我的字符串是 text1 A373R12345 我想找到该字符串最后出现的非数字数字 所以我使用这个正则表达式 0 9 然后我得到这个结果 1 A373 2 12345 但我的预期结果是 1 A373R 它有 R 2 12345 另一个例子
  • 如何更改codeception phpbrowser/mink超时

    我正在尝试使用代码接收创建测试 以检查页面在高负载的情况下是否正常工作 不幸的是 如果页面负载非常高并且测试开始 我会收到这样的错误 Codeception Exception ModuleConfig Codeception Util M
  • 将 OAuth WRAP 访问令牌直接保存在客户端计算机上的 cookie 中吗?

    我计划建立一个可以访问 oauth 包装框架的网站 我正在考虑将访问令牌按原样存储在客户端计算机上 我不想在服务器上维护临时令牌等数据库 我应该做吗 或者我应该加密它 首先 为什么他们不使用 OAuth 2 0 您可以将 OAuth 凭据存
  • php中的$$是什么意思? [复制]

    这个问题在这里已经有答案了 变量后面的两个背对背 是什么意思 像这样 id 我在哪里可以找到更多相关信息 谢谢 In PHP 意味着您将给至少一名维护程序员带来多年的痛苦和折磨 请注意 您最终可能会成为维护程序员 它是一个可变变量 想象一下
  • 在laravel中组合两个不同的无关系数据库表查询进行分页

    我的数据库中有两个不相关的表 我需要将它们合并 以便我可以将其放在我的搜索视图中 但我不知道是否可能 这是我的代码 这news and season表不相关 但它们具有相似的列 我试图将其放入一个对象中以便于分页 是否可以 search r
  • 这个巨大的正则表达式是如何工作的?

    我最近在我的一个目录中的一个名为的文件中找到了下面的代码doc php 文件功能或链接到文件管理器 做得非常好 基本上 它列出了当前目录中的所有文件 并且允许您更改目录 它可以访问我的所有文件 添加 重命名 信息 删除 我不记得安装过它 我
  • 自定义帖子类型的 WordPress 自定义字段

    过去有几个人出现过这个问题 但他们的问题的解决方案对我来说不起作用 我已经尝试了很多 在 WordPress 中 我创建了 3 种自定义帖子类型 1 代表 视频 新闻 和 音乐 每个内容都发布到自己的页面 我想添加自定义字段 这样我就可以为
  • 在 Laravel 中的编辑表单上获取选定选项

    我的网站订单有一个可编辑的表单 并且有以下字段 User quantity note status 我在此表单中还有其他选项 但只有这些字段对我来说很重要 以便能够获取默认值 例如 我希望能够查看用户默认订购的数量 然后我可以更改它或保留它
  • Laravel - 急切加载 Eloquent 模型的方法(而不是关系)

    就像我们可以急切加载 Eloquent 模型的关系一样 有没有办法急切加载不是 Eloquent 模型的关系方法的方法 例如 我有一个 Eloquent 模型GradeReport它有以下方法 public function totalSc
  • div 中的文本字符有限,添加“阅读更多”链接并在单击链接时显示所有字符

    我有一个 div 里面有文本 使用 PHP 和 MySQL 显示 结构如下 div class description p Here is a lot of text p div 我想在 p 标签内的文本超过 100 个字符时显示 阅读更多
  • 如何从脚本中创建新的 Joomla 用户帐户?

    我们正在为 Joomla 创建一个 XML API 允许合作伙伴网站在我们的网站上为其用户创建新帐户 我们已经创建了一个独立的 PHP 脚本来处理和验证 API 请求 但现在我们需要实际创建新帐户 我们最初只想进行 CURL 调用来提交注册
  • Laravel/00webhost 错误 404。在此服务器上找不到请求的 URL

    1 将我的文件上传到 000webhost 我将公用文件夹中的所有文件放置到公共 html然后我创建了一个名为laravel我在那里上传了所有其他文件 这是我的目录结构 laravel app 引导程序 config 公共 html 索引
  • 如何在CentOS 5.3上安装php-mongodb?

    我已经在我的 VPS 上安装了 mongoDB 效果很好 现在我想安装 php 驱动程序以使 php 与 mongoDB 一起工作 我跟着蒙戈安装 http www php net manual en mongo installation
  • 使用 :hover 作为元素的内联样式(使用 HTML/CSS/php)[重复]

    这个问题在这里已经有答案了 可能的重复 如何将 a hover 规则嵌入到文档中间的样式属性中 https stackoverflow com questions 131653 how do i embed an ahover rule i
  • php oracle客户端oci8安装出现什么问题

    我尝试了安装 PHP Oracle 客户端的所有过程 1 我安装了客户端版本8和32位 2 我在php ini中取消了oci的注释 3 重新启动Wamp 4 不确定是否真的安装 但我在 php ini 中得到了引用 5 但仍然无法连接 泰汉
  • 使用 yum 和 pear 安装 php-soap 均失败

    我正在尝试在 Centos 6 4 服务器上安装 PHP 的 SOAP 扩展 我对包管理器 从 CLI 安装包并在 PHP 中配置它们相当不熟悉 我相当有能力管理 php ini 和其他 PHP 配置文件 soap ini 等 我尝试使用以
  • php date_parse("2010 年 2 月") 给出日期 == 1

    当没有日期时 我将其称为 date parse 中的错误 d date parse Feb 2010 会给 d day 1 请参阅对此的评论date parse 手册页 http php net manual en function dat
  • PHP LDAP 查询获取特定安全组的成员

    我正在努力让 LDAP 查询工作来为我提供安全组的成员 我们的活动目录结构设置为 DC domain DC co dc uk然后 我们有一个名为 公司用户 的 OU 其中有一个用于 IT 和标准的 OU 在这些中我们创建了用户 所以我被设置
  • 通过身份验证保护 CodeIgniter 2 应用程序的正确方法是什么?

    I have Ion Auth http benedmunds com ion auth 正确安装并在我的服务器上运行 我也有默认的代码点火器2 新闻 教程在同一个 CI 安装中工作 我只是在玩 并对使用身份验证系统 封闭 或保护整个应用程

随机推荐

  • 将 MongoDB 与本机驱动程序和 Express.js 结合使用时,“拓扑被破坏”

    我已经实现了从 MongoDB 获取数据的简单应用程序 const express require express const app express const port 3000 const MongoClient require mo
  • 求两个数组中最大的共同元素?

    给定两个数组 如何找到两个数组的最大公共元素 我正在考虑对两个数组 n log n 进行排序 然后对另一个数组中一个已排序数组 从较大的数组开始 中的每个元素执行二分搜索 直到找到匹配项 eg a 1 2 5 4 3 b 9 8 3 Max
  • Android - 限制 backStack 中的片段数量?

    目前我有一项活动 并且正在向其中添加片段 搜索 歌曲详细信息 设置等 我实现了基于侧面的菜单导航 因此现在 作为副作用 添加到 Backstack 的片段数量没有限制 有什么方法可以限制片段的数量 或删除旧的条目 例如 每个歌曲详情片段都有
  • Lua字符串char编码

    我看不到 Lua 对其字符串使用什么编码 Im using string byte s i j 其中有文档 返回字符 s i s i 1 的内部数字代码 s j i 的默认值为 1 j 的默认值为 i 请注意 数字代码不一定可以跨平台移植
  • 在java apache.commons.io中,如何避免读取旧的日志消息

    我正在使用 java Tail listener API 来执行 tailf 功能 在 Linux 中 即 每当日志文件中更新日志消息时 此 API 就会打印消息 我的代码如下 public static void main String
  • 使用 BigCommerce API 获取产品图像

    长话短说 几个月前 我使用 Bigcommerce API 为 WordPress 制作了一个插件 用于获取小组件区域中的产品 现在我已经更新了单个文件 Bigcommerce php 现在函数 getProductImages 不存在 我
  • 为什么编译器除以 2 时会右移 31 位?

    我已经反汇编了编译器生成的代码 我发现它生成了以下指令序列 mov eax edx shr eax 1Fh add eax edx sar eax 1 这段代码的目的是什么 我知道 sar eax 1 除以 2 但是什么 shr eax 1
  • 在 Visual Studio IDE 中查看与类关联的控件列表

    我用的是VS的表单设计器 我放置了一个label on my form 然后删除它的文本 目前 我无法找到该标签 如何查看与给定类关联的控件列表 查看 gt 其他窗口 gt 文档大纲
  • 使用 ajax 请求中的 JSON 响应更新 JQuery 进度条

    All 我有一个 AJAX 请求 它向服务器发出 JSON 请求 以获取同步状态 JSON 请求和响应如下 我想显示 JQuery UI 进度条并根据 getStatus JSON 响应中返回的百分比更新进度条状态 如果状态为 insync
  • SQLite CASE/WHEN 语句

    这是我的 CASE WHEN 声明 但正如你所看到的 我收到了这个错误 我不知道为什么 我想做的就是检测 MAJKA 字段中的某些内容何时发生更改 因此 如果 MAJKA 列的某些其他字段为空 请不要触摸它们 而是将值更改为 MAJKA 列
  • 从哈希数组中收集值

    我有以下格式的数据结构 data hash price 1 count 3 price 2 count 3 price 3 count 3 有没有一种有效的方法来获取值 price作为一个数组 1 2 3 首先 如果您使用 ruby arr
  • Laravel 5.4 中的混合/版本图像?

    我想对一组图像使用混合 首先我复制它们 mix copy resources images public images 然后版本 mix version 上面的内容对图像没有任何作用 我也尝试过指定路径 mix version public
  • 在 android.webkit.CookieManager 中存储会话 cookie

    我使用 Volley 库来执行我的应用程序的请求 现在我确实需要按照以下顺序执行一些操作 使用 Volley 库的 POST 请求 我收到带有会话 cookie 的 204 响应 我需要将该 cookie 设置为与 WebView 一起使用
  • 如果使用回形针 gem on Rails 没有上传图片,如何设置默认图片?

    下面是我的代码 class Profile lt ActiveRecord Base belongs to user validates first name presence true validates last name presen
  • 使 git diff 正确显示 UTF8 编码的字符

    我有一个文件 其中包含使用 UTF8 编码的瑞典语字符 If I cat文件显示正常 但如果我这样做git diff特殊字符被打印 例如 Example git diff output name Magler
  • 如何在单个域上为 React app + Express 设置 k8s 入口?

    我有一个使用 React 构建的前端应用程序和在 Nodejs 上构建的后端应用程序 两者都有一个单独的 Docker 镜像 因此在 k8s gce 上有一个单独的部署 每个部署都有对应的k8s服务 比方说fe serice and be
  • 验证嵌套形式中子对象的唯一性无法正常工作

    我对 Rails 中的范围唯一性验证有疑问 如果我尝试直接在子模型中创建具有不想重复的同一组属性的新对象 则效果很好 但是当我尝试创建具有两个不唯一的子对象的父对象时 验证没有被触发 背景 我有一个 Rails 3 2 中的应用程序 其视图
  • 连接3个表并检索所有表中的所有记录

    我正在连接三个表 执行完整的外部连接 以便可以从所有表中检索所有记录 我面临的问题是我加入表的顺序 表格信息 替代文本 http img235 imageshack us img235 7980 tableinfoow1 png http
  • 更改 csv 中的列顺序(python)

    我制作了一个脚本 它读取给定的输入文件 csv 以某种方式操作数据并写入输出文件 csv 就我而言 我给定的输入文件如下所示 sku article name 1 MyArticle 对于我的输出文件 我需要重新排列这些列 还有更多 但我认
  • PHP的password_hash函数值对于每个字符串都不相同

    我尝试使用散列用户密码密码哈希 PHP函数 但是 它的函数是工作散列 而不是常量 第四次测试结果 1 2y 12 SRmipqM7AsYkx3Xc8QGHNex69rGXeVyWGTYrh9T8sh1cP3UrdjfQi 2 2y 12 z