如何在C#中将哈希码附加到计算它的同一文件?

3
我想将哈希码附加到计算它的文件中(该文件可以是任何格式),然后使用RSA算法对结果进行加密。现在我想解密加密结果并计算原始文件的哈希值。现在我需要比较这两个哈希码…… 请问有谁可以帮忙吗?先感谢您。

不,我认为这是不可能的,因为您需要补偿哈希值的变化。 - StuartLC
1
@nonnb:如果您从解密数据的不是追加哈希码的部分计算哈希码,则可能实现。 - Guffa
@Guffa 说得对,不管怎么样,双方必须要达成一个共识,让接收者知道从文件的哪个位置去除哈希。另外一个选择是使用组合文件格式,例如将文件和单独的哈希都压缩进一个新文件中。 - StuartLC
1个回答

0
这是完全可能的。例如,Microsoft Authenticode 的工作原理就是如此。正如 @Guffa 在上面所说的那样,文件中需要有一些定义好的格式来将数字签名(已签名哈希)与被哈希部分分开。一个简单的例子可以是在 XML 文件中使用 某个 XML 元素 嵌入数字签名,使用 SignedXML 类进行操作。更复杂的例子可能会使用多部分文件,正如 @nonnb 所说的那样。签名者和验证者需要知道在哪里找到签名,并从计算中包括什么。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接