【发布时间】:2011-04-27 13:43:33
【问题描述】:
我有三个字段:string Title、byte[] Body 和 byte[] Data,我想从中计算单个哈希值以确保它们没有被篡改或损坏。
在 Python 中,我可以连续使用几次md5.update() 来执行此操作。但我在 C# 中找不到类似的功能。要使用 MD5.ComputeHash(),我需要将所有源代码复制到单个字节 [] 中,这是我想避免的步骤。
如何将所有数据散列到一个散列中,而不必将数据复制到临时缓冲区中?
【问题讨论】:
-
为什么不使用 temp 变量?
-
顺便说一句,我猜python在后台创建了一个单字节数组......
-
你知道MD5坏了,对吧?您说您正在使用哈希来检测篡改,但攻击者在不更改哈希的情况下篡改文档在计算上是可行的。您应该使用 SHA256 或其他不存在已知抗碰撞问题的哈希算法。