如何将校验和添加到 Windows 中的文件?

How to add checksum to a file in Windows?

我有不同扩展名的文件,有些是文本文件,有些是压缩文件或图像。如何以编程方式向文件添加校验和?

例如,我的想法是在文件的元数据中的某处添加校验和。我尝试使用 PowerShell 执行此操作,但文件的属性是只读的。我不想创建一个包含文件校验和的单独文件。我希望校验和本身包含在文件本身或其元数据中的某处。

在 Windows 上,对于 NTFS 文件系统,您可以使用 Alternate Data Streams

它们的行为与文件完全一样,但隐藏并附加到主文件 - 直到它被复制到 non-NTFS 分区。

否则,您不能只向文件添加校验和(即使是短的 CRC32)而不会产生任何后果,而且您​​如何确定 最后 N 个字节是您的校验和,而不是文件的数据?您需要添加一个 header(因此甚至更多字节)等,它可能会扰乱文件加载 - 只需考虑一个简单的纯文本文件,如果您在末尾添加 N 个字节的二进制数据!