我有一些我一直在研究的东西,我找不到答案或者只是理解。在不更改内容的情况下加密文件时,是否会更改文件的MD5 Sum / Hash?就像加密的字符串相同的Word文件一样,加密文件是否与加密的Word文件保持相同的MD5总和?
答案 0 :(得分:4)
是的,加密文件应该会大大改变文件的任何哈希值。
加密哈希码的构造使得任何两个不同字符串的散列应产生截然不同的结果,即使原始字符串之间存在紧密连接。例如,“hello”的MD5哈希是
5d41402abc4b2a76b9719d911017c592
而MD5哈希是“你好?”是
3809718a10a0f59bcf6d4939c10fd28d
加密文件应该通过良好的加密使得生成的文件在统计上看起来是随机的。因此,如果您要对加密文件进行哈希处理,则应该提供一个在统计上与随机字符串的哈希值无法区分的哈希值。这意味着您应该获得相同哈希输出的概率大致为1 / N,其中N是可能的哈希输出的数量。对于一个相当不错的哈希函数,这应该是天文数字小。
答案 1 :(得分:1)
这取决于;如果你从密文(加密明文的名称)和哈希创建完全相同的明文,那么MD5总和将是相同的。如果你只是对密文进行散列,那么散列将是不同的。
密码安全哈希应始终彼此不同,即使只有一位输入发生变化。即使有无限的消息散列到相同的值,也不可能找到另一个计算相同散列的消息(这称为冲突)。
请注意,MD5哈希函数已损坏。如果攻击者可以生成要散列的文件,则可以生成具有相同散列的两个不同文件。因此,创建两个执行不同操作但是散列到相同MD5哈希的程序非常容易。所以使用一个尚未被破坏的哈希函数,例如SHA-256或SHA-512将被视为一个不错的选择。
答案 2 :(得分:0)
加密文件会更改存储在磁盘上的内容。文件内容的MD5哈希不知道(或关心)它是否加密,它只是从磁盘读取字节。由于明文和加密字节不同,因此MD5散列会有所不同。