Php 通过编程更改文件的哈希值而不损坏它

Php 通过编程更改文件的哈希值而不损坏它,php,hash,Php,Hash,有没有人知道如何在不破坏文件的情况下更改文件的哈希值 我读过关于在文件末尾追加一个空字节,从而在不损坏MD5的情况下更改MD5的内容。有人有什么消息吗 我希望用PHP来实现这一点 谢谢。这完全取决于应用程序在读取此文件时的预期。例如,如果它是一个文本文件,您可以简单地在其中一个段落后面插入一个空格。这不会改变文件的可读性,但会改变MD5 同样,对于基本HTML文件或源文件(如C或PHP),只要在语法上不重要的区域中插入空格(例如,不要在字符串常量中插入空格),空格就无关紧要。在末尾加上一些空格或

有没有人知道如何在不破坏文件的情况下更改文件的哈希值

我读过关于在文件末尾追加一个空字节,从而在不损坏MD5的情况下更改MD5的内容。有人有什么消息吗

我希望用PHP来实现这一点


谢谢。

这完全取决于应用程序在读取此文件时的预期。例如,如果它是一个文本文件,您可以简单地在其中一个段落后面插入一个空格。这不会改变文件的可读性,但会改变MD5

同样,对于基本HTML文件或源文件(如C或PHP),只要在语法上不重要的区域中插入空格(例如,不要在字符串常量中插入空格),空格就无关紧要。在末尾加上一些空格或换行符,你会发现网页的行为没有改变

但是,这不太可能对可执行文件起作用,因为当您运行它时,如果它确实加载了,它可能会崩溃并烧掉-一些加载程序可能会对加载部分使用校验和

您需要明确说明在您所谈论的案例中,腐败意味着什么

更新:

例如,在JPEG文件中,可能只需将EOI标记最后替换为唯一的COM节,后跟EOI标记。EOI标记是图像的结尾,您应该能够在注释部分之前插入唯一的注释。这将使每个JPEG都有不同的MD5,同时仍然呈现相同的图像。看


使用ZIP文件,实际上可以在每个文件之间插入任意数据,因为末尾的目录列出了文件及其偏移量。有关详细信息,请参阅。不幸的是,我不熟悉RAR文件的内部结构。

听起来,如果服务器位于*nix平台上,您最好将这些重复文件更改为符号链接ln-s otherfolder/file文件

如果您主要处理.ZIP和.RAR文件,请为PHP找到一个ZIP/RAR库,只需在每个ZIP/RAR中添加一个小的随机文件即可


对于JPEG,请遵循的答案。

接受一些回答什么是哈希MD5?你在说什么?你为什么需要这个?是的,MD5。我需要它,因为托管我的Web服务器的家伙想删除重复文件,他就是这样检查的。我只是想反对它简单的解决方法:换一个主机提供商。约瑟夫,我不是在评判你,而是在评判你的提供商。当您的容量不足时,他为什么还要考虑节省磁盘空间?我同意你的看法,他错了。对不起,大多数文件是.ZIP和.RAR,还有一些.jpeg。