如何在不改变完整性testing属性的情况下破坏文件?

我试图创build一个过程来比较两个文件夹应该包含完全相同的文件。 希望能够在不更改属性的情况下修改文件的内容,就像文件被意外损坏一样。 任何方式来完成这个?

使用磁盘编辑工具查找有问题的文件的一些块,并更改其内容。 谷歌短语,如“磁盘hex编辑器”find一个。 现在,您的文件已损坏,而且您没有使用OS API调用,这些调用也会更新文件上的时间戳。

使用PowerShell的Get-FileHash函数。 它将根据文件的内容计算散列,而不是时间戳。 然后你只是比较FileA的散列到FileB 。 如果内容相同,那么它们应该是相同的散列。 这样你就不必担心编辑文件是不一样的,比较时间戳数据。

源: https : //msdn.microsoft.com/en-us/powershell/reference/6/microsoft.powershell.utility/get-filehash

Get-FileHash cmdlet通过使用指定的散列algorithm来计算文件的散列值。 散列值是与文件内容相对应的唯一值。 散列或其他名称不是通过文件名,扩展名或其他名称来识别文件的内容,而是将一个唯一的值赋予文件的内容。 文件名和扩展名可以在不更改文件内容的情况下进行更改,也不必更改散列值。 同样,可以更改文件的内容而不更改名称或扩展名。 但是,即使更改文件内容中的单个字符也会更改文件的哈希值。

哈希值的目的是提供密码安全的方式来validation文件的内容没有被改变。 虽然包括MD5和SHA1在内的一些哈希algorithm不再被认为是安全的,但是安全哈希algorithm的目标是使得不可能改变文件的内容 – 无论是偶然的,恶意的还是未经授权的尝试 – 保持相同的散列值。 您还可以使用散列值来确定两个不同的文件是否具有完全相同的内容。 如果两个文件的散列值相同,则文件的内容也是相同的。

默认情况下,Get-FileHash cmdlet使用SHA256algorithm,但可以使用目标操作系统支持的任何哈希algorithm。