md5(file_contents_as_string) 等于 md5_file(/path/to/file) 吗?

2024-03-12

If I do:

<?php echo md5(file_get_contents("/path/to/file")) ?>

...这将始终产生与以下内容相同的哈希值:

<?php echo md5_file("/path/to/file") ?>


是的,他们返回相同的:

var_dump(md5(file_get_contents(__FILE__)));
var_dump(md5_file(__FILE__));

在我的例子中返回这个:

string(32) "4d2aec3ae83694513cb9bde0617deeea"
string(32) "4d2aec3ae83694513cb9bde0617deeea"

编辑: 看一下两个函数的源码:https://github.com/php/php-src/blob/master/ext/standard/md5.c https://github.com/php/php-src/blob/master/ext/standard/md5.c(第 47 和 76 行)。它们都使用相同的函数来生成哈希值,除了md5_file()函数首先打开文件。

第二次编辑: 基本上是md5_file()函数根据文件内容生成哈希,而不是根据文件名等文件元数据。这是同样的方式md5sum在Linux系统上工作。 看这个例子:

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

md5(file_contents_as_string) 等于 md5_file(/path/to/file) 吗? 的相关文章

随机推荐

  • 如何处理 next.js 路由中的尾部斜杠?

    我正在尝试设置 next js 应用程序 但在处理带有尾部斜杠的路由时遇到问题 因此 例如 如果我有这样的页面结构 pages index js blog index js slug js 然后去 给我基础index js 即将 blog给
  • msdeploy 上的嵌套虚拟目录已删除

    我的项目使用 msdeploy 将包发布到 IIS 它部署在项目的现有版本上 在Web应用程序中 我有一个虚拟目录 但每次部署项目时 虚拟目录都会消失 我通过以下方式调用 MSDepoly source package d 9 1 0 67
  • 将文件直接从 FTP 传输到 Azure 文件存储,无需将它们保存在本地内存或磁盘中

    我必须将文件从 FTP 传输到 Azure 文件存储 我的代码工作正常 但我正在内存中传输这些文件 这不是最佳实践 所以首先我将流读取到Byte内存中的数组 然后我将输出上传到 Azure 文件存储 现在我知道最好异步执行此操作 但我不知道
  • google.script.run 不返回字符串

    试图找出用于制作 Google 文档插件的 Google Apps 脚本 我有 Code gs function helloWorld return Hello World 在我调用的 code gs 下 侧边栏 html console
  • 播放时拔掉耳机会导致 iPhone 应用程序出现错误

    我正在创建一个基于的应用程序在这里说话示例应用程序 如果耳机已插入或默认通过扬声器播放 我希望音频通过耳机播放 我使用了底部的代码来实现这一点 并且除非在播放过程中拔掉耳机 否则它工作正常 此时播放结束 没关系 问题是 当我再次点击播放时
  • Dockerfile 还是注册表?哪种分配策略是首选?

    如果您使用 Dockerfile 制作服务 您是否更愿意使用 Dockerfile 构建镜像并将其推送到注册表 而不是分发 Dockerfile 和存储库 供人们构建镜像 哪些用例有利于 Dockerfile repo 分发 哪些用例有利于
  • 可嵌入的 jpa 类应该实现 equals 和 hashCode 吗?

    假设我有以下场景 Entity public class Person Id private Long id Surrogate key Embedded private Name name Natural key public int h
  • C++:平台相关类型 - 最佳模式[关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 如何使用 JavaCV 从网络摄像头捕获和录制视频

    我是 JavaCV 新手 我很难找到关于我感兴趣的主题的不同问题的好教程 我已经成功地从我的网络摄像头实现了某种实时视频流 但问题是我使用我在网上找到的这段代码片段 Override public void run FrameGrabber
  • 如何设置 UIDatePickerModeCountDownTimer 的最大时间?

    我想问一下iOS倒计时最大时间怎么设置 例如最多1小时30分钟 倒数计时器是从UIDatePicker s mode Thanks EDIT 有人说我必须设置最小 最大日期 我只是在故事板中设置它们 但我没有看到任何区别 设置的时间是我当地
  • 通过 ssh 启动时 Docker 容器 mongod 错误

    我已经在 docker 容器上安装了 mongodb 并在 ubuntu 14 04 上安装了 openssh 容器正在使用 ssh 运行 但是当我 ssh 进入容器时 尝试启动 mongod 时出现以下错误 root 430f9502ba
  • 位置侦听器超时

    我当前正在使用计时器来确定位置监听器是否超时 问题是 GPS 仍然打开 我不知道为什么 当位置侦听器超时时 是否有一种可以重写的方法或更优雅的方法 考虑向您的位置管理器添加 GPS 状态侦听器 当 GPS 启动 停止 接收第一次定位或卫星状
  • Javascript - 在一页上复制多个文本区域的文本按钮

    我已经搜索过该网站的类似问题 但我仍然不知所措 基本上 我正在为一位即将离职的同事接手一个项目 他的 Intranet 页面计划应该有多个文本区域 每个文本区域都有自己的预定义文本和自己的 复制文本 按钮 单击时 它会复制到用户的剪贴板 我
  • DrawerLayout 和多窗格布局

    我的应用程序使用多窗格布局 http developer android com design patterns multi pane layouts html显示作业列表 每个Assignment可以放在一个AssignmentCateg
  • 我的自动装配数据源在 Spring 中返回 null,这是怎么回事?

    我正在尝试设置我的 dataSource 以获取连接 但它在 conn dataSource getConnection 上返回 null 这是我的 DAO 中的相关代码 Autowired public void setDataSourc
  • 无法登录部署在 Tomcat7 上的 Apache Usergrid

    我在 Ubuntu 14 04 LTS 上下载并构建了 Apache Usergrid 并按照以下给出的说明在本地 tomcat7 服务器上部署了 ROOT warhttps usergrid incubator apache org do
  • Bittorrent:为什么peers字段的值是二进制的,而不是Bencoded列表?

    我正在尝试用 C 语言实现 Bittorrent 首先 在编写代码片段之前 我尝试使用网络浏览器将以下消息 URL 发送到跟踪器服务器 你可以试试这个网址 http torrent ubuntu com 6969 announce info
  • 如何使用 Spark Scala 将 CSV 行拆分为元组

    这是我想通过 Scala 检索的数据 数据如下 用户ID 电影ID 1 1172 1 1405 1 2193 1 2968 2 52 2 144 2 248 首先我想跳过第一行 然后通过 split 分割用户和电影并映射到 userID m
  • 如何从 UITestControl 获取 ItemStatus?

    The UI自动化框架 http msdn microsoft com en us library ms747327 aspx有一个基类 自动化元件 http msdn microsoft com en us library system
  • md5(file_contents_as_string) 等于 md5_file(/path/to/file) 吗?

    If I do 这将始终产生与以下内容相同的哈希值 是的 他们返回相同的 var dump md5 file get contents FILE var dump md5 file FILE 在我的例子中返回这个 string 32 4d2