(PHP) 如何将 crypt() 与 CRYPT_BLOWFISH 一起使用?

2023-12-15

首先,我发现要使用 CRYPT_BLOWFISH,我需要使用以 $2a$ 开头的 16 字符盐。但是,那crypt() 的 php.net 文档说有些系统不支持CRYPT_BLOWFISH。这种情况有多常见?

接下来,从文档上的示例中,我看到我使用 crypt() 如下:

<?php
$password = crypt('mypassword'); // let the salt be automatically generated

/* You should pass the entire results of crypt() as the salt for comparing a
   password, to avoid problems when different hashing algorithms are used. (As
   it says above, standard DES-based password hashing uses a 2-character salt,
   but MD5-based hashing uses 12.) */
if (crypt($user_input, $password) == $password) {
   echo "Password verified!";
}
?>

为了使用 CRYPT_BLOWFISH,我唯一需要修改的是第一行以使其像这样;

crypt('mypassword', '$2a$07$usesomesillystringforsalt$')

然后其余的线就可以了?


对于 5.3.0 之前的 PHP,crypt() 使用操作系统提供的库。如果您使用的是早期版本,那么您需要检查操作系统文档以查看它是否受支持(检查 CRYPT_BLOWFISH 常量的值) - 如果不支持,则该算法是在 PHP 的 mcrypt() 扩展中实现的。

您从文档中引用的示例似乎没有多大意义:

  $stored_password=fetch_password($user);

  if (crypt($_REQUEST['password'],$stored_password)===$stored_password) {
      // note that crypt automatically extracts the salt and alogrithm type
      // from $stored_password
      ....

创建密码时只需指定前缀($2a$)。

HTH

C.

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

(PHP) 如何将 crypt() 与 CRYPT_BLOWFISH 一起使用? 的相关文章

  • PHP 中的 NOW() 函数

    是否有 PHP 函数以与 MySQL 函数相同的格式返回日期和时间NOW 我知道如何使用date 但我想问是否有专门用于此的功能 例如 返回 2009 12 01 00 00 00 您可以使用date https www php net m
  • 如何编写在正文中包含锚标记的 Zend Framework URL?

    使用 Zend Framework 中设置的标准 MVC 我希望能够显示始终具有锚点的页面 现在我只是在 phtml 文件中添加一个带有 anchor 的无意义参数
  • 如何在 HTML / Javascript 页面中插入 PHP 下拉列表

    好吧 这是我的第二篇文章 请接受我是一个完全的新手 愿意学习 花了很多时间在各个网站上寻找答案 而且我几乎已经到达了我需要到达的地方 至少在这一点上 我有一个网页 其中有许多 javascript 函数 这些函数一起使用 google 地图
  • 如何在php中使用preg添加html属性

    我正在寻找在 php 中编写一个脚本来扫描 html 文档并根据它找到的内容向元素添加新标记 更具体地说 我是扫描文档并为每个元素搜索CSS标记 float right left 如果找到它 它会添加align right left 基于它
  • PHP文件上传

    如果我想在文件名转到服务器的永久位置 而不是临时位置 之前更改文件名 我该如何执行此操作 代码如下
  • Zend Framework Zend_Form 装饰器: 位于按钮元素内部?

    我有一个像这样创建的按钮元素 submit new Zend Form Element Button submit submit gt setLabel My Button submit gt setDecorators array Vie
  • php下拉菜单人口

    我正在尝试编写一个 php 脚本 该脚本将根据主下拉菜单的选择填充第二个下拉菜单 我想使用 jquery 来完成所有非页面刷新的事情 但我发现现有的所有东西都很难理解和修改 你知道有什么写得很好且易于理解的东西吗 或者可能是现有的教程 下面
  • 如何使用 Google 帐户对我们网站中的用户进行身份验证

    如何在我们的网站中使用 Google 帐户对用户进行身份验证 我希望用户重定向到谷歌登录页面 然后将他重定向到我的网站 我想要这个 PHP 实现 你要OAuth http code google com apis accounts docs
  • PHP 和 NLP:嵌套括号(解析器输出)到数组?

    想要将带有嵌套括号的文本转换为嵌套数组 以下是 NLP 解析器的输出示例 TOP S NP PRP I VP VBP love NP NP DT a JJ big NN bed PP IN of NP NNS roses 原文 我喜欢一大床
  • 如何将粘在一起的单词分开?

    我有很多命名不好的文件 videoofmegoingtoschool avi 是否有一个库或某种算法可以正确地将其分离 video of me going to school avi 我不认为那里有什么 我可以想象一个程序 它使用单词词典并
  • 将数据库中的用户 ID 添加到 Codeigniter 中的会话数据中?

    我是 CodeIgniter 的新手 在从数据库添加用户 ID 用户登录后 到会话数据时遇到问题 这是我的代码问题 之前可能会在 SOF 上被问到 在付出了所有努力之后 我问这个 登录模型
  • 创建 Facebook 测试用户时访问令牌出现问题

    我正在尝试为我的 Facebook 应用程序创建测试用户 他们在 11 月份的博客文章 http developers facebook com blog post 429 中宣布了此功能 并在此处记录了该功能 http developer
  • Doctrine 1 和 Symfony 1 的多个主键?

    我已经知道在 Symfony 1 和 Doctrine 1 中不可能使用多个主键 但是你们知道有什么好的解决方法吗 除了多对多关系之外 原则 1 不适用于多列上的主键 但如果你想使用多对多关系 请像这样使用 BlogPost columns
  • chown:不允许操作

    我有问题 我需要通过 php 脚本为系统中的不同用户设置文件所有者权限 所以我通过以下命令执行此操作 其中 1002 是系统的用户 ID file put contents filename content system chown 100
  • 在 null laravel 上调用成员函数 save()

    大家好 我正在使用 laravel 5 多态关系将数据保存在数据库中 但我遇到了一些问题 当我尝试将数据保存在数据库中时 它会抛出此错误 对 null 调用成员函数 save 我不知道为什么我会遇到这个错误 我正在关注多态关系的本教程在 L
  • PHP 错误:“无法通过引用传递参数 2”

    我只是需要有关这个 PHP 错误的帮助 我不太明白 致命错误 无法在第 13 行 web stud openup inactivatesession php 中通过引用传递参数 2
  • UTF-8、PHP、Win7 - 现在是否有解决方案可以使用 php 在 Win 7 上保存 UTF-8 文件名?

    更新 只是为了不让您阅读所有内容 PHP 开头 7 1 0alpha2 在 Windows 上支持 UTF 8 文件名 感谢阿纳托尔 贝尔斯基 根据 stackoverflow 上的一些链接 我找到了部分答案 https stackover
  • magento成功页面变量

    我正在尝试捕获一些 magento 成功页面变量以传递给我们的广告公司 到目前为止 我已经得到了这个 但变量没有输出任何内容 数据需要采用以下格式 price1 price2 price3 qty1 qty2 qty3 sku1 sku2
  • Doctrine DQL 从 join 返回平面数组

    我通过 DQL 中的常规 LEFT JOIN 选择 3 个实体 它们通过连接表关联 连接表还定义了实体以及带注释的关系 查询执行没有问题 但我的结果作为平面数组返回 我期望一个包含三个实体作为每个索引的数组元素的数组 SELECT e1 e
  • PDO语法错误

    我在一个项目中使用 PDO 但提交时出现语法错误 这是我的代码

随机推荐

  • jqGrid没有addJSONData方法

    今天下午我只是在玩 jqGrid 让它与本地数组数据源配合得很好 但是 现在我正在尝试让它加载本地 JSON 数据 我的代码如下 jQuery list4 jqGrid datatype json lt Also tried local h
  • 如何使用 angularjs 关闭点击主体时动态生成的下拉菜单?

    你好 我正在 angularjs 中开发 Web 应用程序 在右上角 我有一个下拉框 只有在用户登录后才会激活 我有一个场景 用户单击下拉菜单 一旦他单击页面上的任意位置 我想关闭下拉菜单 长期以来我一直在努力解决这个问题 我创建了 plu
  • Python Mysql,“命令不同步;您现在无法运行此命令”

    我有一个从 Python 执行的 MySQL 存储过程 包装在 Django 中 当我尝试执行第二条语句时 出现错误 命令不同步 您现在无法运行此命令 我目前无法提交交易 这只是我调用过程时的一个问题 该怎么办 cursor callpro
  • 如何在 Grails 插件中实现 Groovy 全局 AST 转换?

    我想在编译时修改一些 Grails 域类 我最初认为这是 Groovy 的全局 ASTTransformation 的工作 因为我不想注释我的域类 本地转换器需要 最好的方法是什么 我也尝试模仿DefaultGrailsDomainClas
  • 从 LinqToTwitter IAuthorizer 中提取 BearerToken

    希望对我认为简单的问题有一个简单的答案 经过身份验证后 是否可以从 IAuthorizer 中提取 BearerToken 使用 LinqToTwitter 进行授权后 我想进行自己的 API 调用 并且需要 BearerToken 来执行
  • Maven 的环境变量

    我已将一个项目从 Eclipse 移植到 Maven 并且需要设置一个环境变量以使我的项目正常工作 在 Eclipse 中 我转到 运行 gt 运行配置 然后在 环境 选项卡下 将 WSNSHELL HOME 设置为值 conf 我怎样才能
  • 在c#中裁剪图像

    我有一张图像 当我按下表单上的按钮时 我想裁剪它 我有以下代码 在按下按钮时运行 但它不会对图像执行任何操作 try Image image Image FromFile test jpg Bitmap bmp new Bitmap 200
  • 估算数据的多项回归

    我需要估算缺失的数据 然后使用生成的数据集进行多项回归 我尝试使用小鼠进行插补 然后使用 nnet 中的多项函数进行多项回归 但这给了我不可读的输出 以下是使用 mouse 包提供的 nhanes2 数据集的示例 library mice
  • 证书注册流程是怎样的?

    我正在寻找注册证书的程序 我搜索了很多但没有找到好的答案 到目前为止 我明白首先我必须生成一个密钥存储 用于创建公钥和私钥 然后私钥应保持私有 公钥与其他信息 如名称和组织 一起发送到 CA 然后CA会生成一些东西并返回给我一些包含公钥和信
  • .Net 正则表达式将 $ 与字符串结尾而不是行匹配,即使启用了多行

    我试图突出显示降价代码 但遇到了 NET 正则表达式多行选项的奇怪行为 下面的表达式 在任何在线正则表达式测试工具上都可以正常工作 但它拒绝与 net 一起使用 它似乎没有考虑 标签 只是突出显示所有内容 直到字符串末尾 无论如何 这是我的
  • Pyinstaller:AttributeError:模块“enum”没有属性“IntFlag”[重复]

    这个问题在这里已经有答案了 我需要将python代码编译为exe 我找到了一些如何做到这一点的指南 其中要求我为此安装 PyInstaller pip install upgrade pyinstaller 但我收到下一个错误 C User
  • 使用 Monotouch 处理 iOS 的 UITableViewSource 事件

    我试图捕获并处理一个事件 当 a 的元素UITableViewSource被点击 这是我的代码 public class TableViewSource UITableViewSource public event EventHandler
  • HSpec 无预期编译失败

    我正在学习 Haskell 并且编写了这个函数 safeHead a gt Maybe a safeHead Nothing safeHead x xs Just x 我现在尝试用 HSpec 测试它 import Test Hspec m
  • Eclipse 中的 XSLT 2.0 无需额外的库?

    是否可以在 Eclipse 中执行 XSLT 2 0 转换而无需额外的库 AltovaXML Saxon 答案是否定的 您需要安装 XSLT 2 0 处理器 例如 Saxon
  • 编译器和汇编器位于计算机的哪里?

    所以我知道最基本的知识 编译器将源代码转换为汇编代码 汇编器将汇编代码转换为机器代码 但我无法正确谷歌搜索 它们实际上位于哪里 我假设编译器位于硬盘驱动器上的某个位置 因为您可以从网络下载编译器并将它们用于各种编程语言 汇编器是位于硬盘上
  • python请求获取cookie

    x requests post url data data print x cookies 我使用requests库从网站获取一些cookie 但我只能获取cookie 从响应中 如何从请求中获取cookie 谢谢 或者 您可以使用requ
  • 如何动态设置 Rust 数组长度?

    我想创建这样的数组 let arr 0 length 其中长度是ausize 但我收到这个错误 E0307 The length of an array is part of its type For this reason this le
  • 由于打开相机时内存不足,phonegap Android 应用程序崩溃

    我正在使用 PhoneGap v1 3 0 开发 Android PhoneGap 应用程序我的应用程序有一个按钮 当单击该按钮时 使用phonegap api启动相机 当用户捕获图像时返回照片路径 但发生的情况是应用程序在相机返回之前崩溃
  • 使用httprequest下载文件

    是否可以使用 httprequest 从网站下载文件 我只习惯用它来获取页面的源代码 如果无法使用 httprequest 来完成此操作 是否可以使用 C 下载文件而无需使用网络浏览器 编辑 答案必须允许我选择硬盘上将文件下载到的位置 你绝
  • (PHP) 如何将 crypt() 与 CRYPT_BLOWFISH 一起使用?

    首先 我发现要使用 CRYPT BLOWFISH 我需要使用以 2a 开头的 16 字符盐 但是 那crypt 的 php net 文档说有些系统不支持CRYPT BLOWFISH 这种情况有多常见 接下来 从文档上的示例中 我看到我使用