PHP crypt() 的输出长度是多少? [关闭]

2024-03-07

PHP的输出长度是多少crypt()?

md5()输出是 128 位,并生成一个包含 32 个字符的字符串,因此在数据库中,您将其放入char(32)专栏,怎么样crypt()?


Note:以这种方式提出问题完全受到限制,请参阅http://php.net/crypt http://php.net/crypt

更多细节:

  • 成功后,返回字符串的长度可以在 13 到 123 之间变化。
  • 输出长度取决于所使用的哈希算法。您的问题中它仍然未定义。
  • 输出长度取决于传递给函数的盐。您的问题中它仍然未定义。
  • crypt始终返回散列字符串或短于 13 个字符的字符串,并保证在失败时与 salt 不同。

例子:

让我们从一个简单的开始crypt调用和基于标准 DES 哈希的有效两字符盐:

 13 :: 2 (salt) + 11 (hash - 64 bits, base 64)

如果你使用 PHPcrypt特别是 MD5(这里更好的名称是:md5crypt、MD5(Unix)、FreeBSD MD5、Cisco-IOS MD5;Hashcat 模式 500)和一个空盐,输出长度为:

 26 :: 3 (`$1$`) + 0 (empty salt) + 1 (`$`) + 22 (hash - 128 bits, base 64)

如果在 PHP 的系统上crypt默认为上述 MD5,称为不指定盐,crypt会产生盐。该盐的长度通常为 8 个字符。则输出长度为:

 34 :: 3 (`$1$`) + 8 (salt) + 1 (`$`) + 22 (hash)

在这种情况下,您的数据库表列char(32)会在插入或截断时报告错误 - 取决于您使用的数据库服务器。

但是 MD5 示例没有实际意义,我选择它是因为你的问题中有它,但你不应该将 MD5 与crypt (see: 作者认为 Md5crypt 密码加扰器不再安全 http://phk.freebsd.dk/sagas/md5crypt_eol.html).

相反,让我们看一下 Blowfish 哈希(CRYPT_BLOWFISH)。它有一个两位数cost参数并且盐长度始终为 22(如果给出较短的盐,则用$s):

 60 :: 4 (`$2y$`) + 3 (cost `$`) + 22 (salt) + 1 (`$`) + 53 (hash)

对于 Blowfish crypt 哈希算法(bcrypt、OpenBSD Blowfish;Hashcat 模式 3200),固定长度为 60。

正如您所看到的,输出长度取决于所使用的哈希算法、盐的长度,甚至一些特定于哈希的参数,例如cost.

例如,如果您选择具有 999 999 999 轮和 16 字节长盐的 SHA512,则输出长度为:

123 :: 3 (`$6$`) + 17 (`rounds=999999999$`) + 16 (salt) + 1 (`$`) + 86 (hash)

这个例子可能有点极端,只是为了展示图片。


Other crypt相关问题:

  • crypt() 的替代方法 https://stackoverflow.com/q/8662207/367456
  • 与 PHP 中的 crypt() 比较密码 https://stackoverflow.com/q/3135524/367456
  • 你能将 php crypt() 的输出转换为有效的 MD5 吗? https://stackoverflow.com/q/461800/367456
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

PHP crypt() 的输出长度是多少? [关闭] 的相关文章

  • 使用PHP套接字发送和接收数据

    我正在尝试通过 PHP 套接字发送和接收数据 一切正常 但是当我尝试发送数据时 PHP 不发送任何内容 Wireshark 告诉我发送的数据长度为 0 我正在使用这段代码
  • PHP中如何识别服务器IP地址

    PHP中如何识别服务器IP地址 对于服务器 ip 来说是这样的 SERVER SERVER ADDR 这是港口的 SERVER SERVER PORT
  • 如何用javascript正确读取php cookies

    考虑这个 php 和 javascript 代码 然后我在控制台中看到的是 utma 111872281 291759993 1444771465 1445374822 1445436904 4 utmz 111872281 1444771
  • 如何在 HTML / Javascript 页面中插入 PHP 下拉列表

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

    我正在寻找在 php 中编写一个脚本来扫描 html 文档并根据它找到的内容向元素添加新标记 更具体地说 我是扫描文档并为每个元素搜索CSS标记 float right left 如果找到它 它会添加align right left 基于它
  • 如何从字符串中删除所有数字?

    我想删除字符串 0 9 中的所有数字 我写了这段有效的代码 words preg replace 0 words remove numbers words preg replace 1 words remove numbers words
  • PHP文件上传

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

    我有一个像这样创建的按钮元素 submit new Zend Form Element Button submit submit gt setLabel My Button submit gt setDecorators array Vie
  • 检查文件权限

    我怎样才能检查file permissions 无需通过运行操作系统特定命令passthru or exec Use 文件权限 http php net fileperms功能 clearstatcache echo substr spri
  • PHP cURL 在本地工作,在 AWS 服务器上出现错误 77

    最新更新 脚本作为管理员用户通过 SSH shell 作为 php script php 成功运行 当由 nginx 用户运行时 curl 命令无法执行 https 请求 所以我猜测这是nginx用户无法正确使用curl的问题 我已经检查了
  • “pdo_mysql”已禁用,我无法启用它。我在 iMac 7.1 OSX 10.6.8 上安装了 MAMP v. 3.0.4

    pdo mysql 已禁用 我无法启用它 我在 iMac 7 1 OSX 10 6 8 上安装了 MAMP v 3 0 4 在我的 phpinfo 页面上 我可以看到唯一启用的 PDO 是 sqlite 如果我查看 php 5 5 10 扩
  • 如何确定当前使用哪个网格选项

    我将 Bootstrap 3 用于使用 PHP 和 HTML 创建的网页 随着响应式网格和类的开启引导程序3您可以将多个类分配给一个 div 以根据当前屏幕尺寸定义不同的宽度 例如 div class col lg 3 col md 3 c
  • Rails/Ruby 合并两个具有相同键、不同值的哈希值

    我有两个想要合并的哈希值 它们看起来像这样 Hello gt 3 Hi gt 43 Hola gt 43 第二个哈希看起来像 Hello gt 4 Hi gt 2 Bonjour gt 2 我想合并这两个哈希数组 使结果看起来像 Hello
  • 在 null laravel 上调用成员函数 save()

    大家好 我正在使用 laravel 5 多态关系将数据保存在数据库中 但我遇到了一些问题 当我尝试将数据保存在数据库中时 它会抛出此错误 对 null 调用成员函数 save 我不知道为什么我会遇到这个错误 我正在关注多态关系的本教程在 L
  • 如何在 Smarty 中打印 json

    我从 api 获取 json 如何使用 Smarty 打印 json Json格式 first name jinu last name mk loginid email protected cdn cgi l email protectio
  • 如何解决 Laravel 8 UI 分页问题?

    我在尝试最近发布的 laravel 8 时遇到了问题 我试图找出变化是什么以及它是如何工作的 当我这样做时 我遇到了分页 laravel 8 UI 变得混乱的问题 不知何故它发生了 有人可以帮助我吗 或者经历过同样的事情 像这样我在 lar
  • PHP:在脚本完成之前获取输出

    我有一个名为 data php 的脚本 如下所示 do some stuff echo result do some other stuff eg database operations 我需要在另一个脚本中使用 data php 的输出
  • 使用 fopen() 包装器创建 ZIP 文件

    如何使用以下命令创建 ZIP 文件fopen 包装器 http es php net manual en wrappers compression php 这显然是not道路
  • 如何确保在 PHP 的“foreach”循环中重置该值?

    我正在写一个简单的 PHP 页面和一些foreach使用了循环 以下是脚本 arrs array a b c foreach arrs as arr if substr arr 0 1 b echo This is b End of fir
  • 谷歌日历手表过期时间超过1个月怎么办?

    我将我的 CRM 系统与 Google 日历同步 为此 我要求push notifications从我的用户 Google 日历到我的系统 我已经成功创建了手表 并将过期时间设置为2030年 但是当我收到手表事件的响应时 它显示手表的过期时

随机推荐

  • 如何让 grunt 服务任务与 watch 一起工作?

    我最近安装并启动并运行了它 但我似乎无法让它与我的手表任务同时运行 在我的 grunt 文件中 如果在监视之前注册服务任务 服务器会旋转 但监视任务不会 反之亦然 这是服务包 我正在使用并附加了 Grunt 文件 https www npm
  • 如何在 Dart / Flutter 中使用另一个文件的功能?

    我有一个 Flutter 应用程序 正在使用 flutter web view 包 我在几个不同的文件上使用它 并且希望创建自己的文件 并在我的应用程序中的任何位置简单地引用 launchwebview 函数 因为需要几行代码才能使其工作
  • 负载下 .Net Core 容器的 SQL Server DbCommand 超时

    我正在 Open Shift Enterprise V3 上运行一个指向 SQL Server 数据库的 Net Core 容器 我有一个 Net Core REST API 带有 put 方法 可以在数据库中添加或更新记录 我添加 更新的
  • MATLAB - 从分类器生成混淆矩阵

    我有一些测试数据和标签 testZ 0 25 0 29 0 62 0 27 0 82 1 18 0 93 0 54 0 78 0 31 1 11 1 08 1 02 testY 1 1 1 1 1 2 2 2 2 2 2 2 2 然后我对它
  • 删除 pyspark 中所有列名称中的空格

    我是 pySpark 的新手 我收到了一个大约有 1000 列的 csv 文件 我正在使用数据块 大多数这些列之间都有空格 例如 总收入 总年龄 等 我需要更新所有带有下划线 空格的列名称 我已经尝试过这个 foreach DataColu
  • 根据另一个数据帧替换数据帧中的值

    我有以下两个数据框 gt df1 lt data frame A c 0 0 0 B c 0 201 0 C c 0 467 0 A B C 1 0 0 1 2 0 201 467 3 0 0 0 gt df2 lt data frame
  • 如何在R中设置plotly图表具有透明背景?

    到目前为止 这是我所拥有的 f1 lt list family Arial sans serif size 25 color white f2 lt list family Old Standard TT serif size 14 col
  • Mysql:检查范围时间冲突[关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我有下表 其中存储了教师的课堂例程
  • 使用正则表达式过滤并返回匹配的数字

    在这里 我尝试使用正则表达式从文本中过滤特定的电话号码 电话名称可能有这样的漏洞 4023one345233应被视为40231345233然后应该过滤 这段代码运行良好 没有漏洞 code1 arrwords array 0 gt zero
  • 如何安全地存储 Android KeyStore 密码

    在一个应用程序中 我使用 Android KeyStore 我已经为整个密钥库和每个密码条目设置了一个密码 由于这些密码是字符串 因此它们存储在代码中的字符串成员中 显然 如果我想发布应用程序 这是不安全的 因为潜在的攻击者可以反编译 ap
  • 按降序按组连接值[重复]

    这个问题在这里已经有答案了 我想要一个数据 我的数据 A 看起来像 author id paper id prob 731 24943 1 731 24943 1 731 688974 1 731 964345 8 731 1201905
  • 如何根据 C11 使用二进制前缀?

    我目前正在开始使用微控制器编程C30 A C编译器基于GCC从微芯片为他们PIC24设备 并且我启用了Strict ANSI warnings出于好奇 首先 我不知道在 C11 中 像 这样的注释标记是 错误的 而我应该使用 blah bl
  • 是否可以访问 ViewPager 正在查看的当前 Fragment?

    我有一个应用程序ViewPager和三个Fragments 我想弄清楚如何获得当前Fragment被查看 以便我能够了解其论点 我有一个OnPageChangeListener获取当前页面索引 但是 ViewPager getChildAt
  • Spring Security 条件default-target-url

    我注意到有几个关于这个主题的问题 我浏览了它们 但无法将它们应用到我的特定 Spring 设置中 我想根据用户的角色将登录重定向配置为有条件的 这是我到目前为止所拥有的
  • 如何将所有背景设置为透明以便可以看到主屏幕?

    我想了好几天这个问题 如何将应用程序中的所有背景设置为透明 以便可以看到iOS桌面和图标 有什么方法可以帮助满足需求吗 我仍然没有对图像进行采样的权限 我尝试过一些方法 我把整个iOS系统看成一个大app 当我们在桌面上打开一个应用程序时
  • 将多个协议 Array> 向下转换为 Array

    所以我有两个数组 var arrayOne Array
  • 向 ASP.NET MVC 的 SiteMap 添加自定义属性

    我在 ASP NET MVC 中使用内置的 ASP NET 站点地图 具有以下架构 http schemas microsoft com AspNet SiteMap File 1 0 http schemas microsoft com
  • 如何在 python 中将数据(或单点)添加到现有的 3d 散点图表达图中

    我有一段代码可以绘制与此类似的图 import plotly express as px import plotly graph objects as go df px data tips fig go Figure data go Sca
  • 无法将 Flask 部署到 Azure

    我正在尝试部署python flask to azure但无法打通 我创建了一个 api 服务Azure 这里是url for my api 并且它与python 3 https textclassifier azurewebsites n
  • PHP crypt() 的输出长度是多少? [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions PHP的输出长度是多少crypt m