使用C#将多个字节[]一起散列成单个散列?

前端之家收集整理的这篇文章主要介绍了使用C#将多个字节[]一起散列成单个散列?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有三个字段:字符串标题,字节[]正文和字节[]数据,我想从中计算单个散列作为检查,以确保它们没有被篡改或损坏.

Python中,我可以连续使用md5.update()来执行此操作.但是我在C#中找不到类似的功能.要使用MD5.ComputeHash()我需要将所有的源都复制到一个单字节[],这是我想避免的一个步骤.

我如何将它一起散列成一个哈希,而不必将数据复制到临时缓冲区?

解决方法

几乎所有的哈希算法的设计方式都是可以连续地以多个块的形式提供数据.结果与整个数据一次散列的相同.

创建例如MD5CryptoServiceProvider和每个块的TransformBlock Method和最后一个块的TransformFinalBlock Method

MD5 md5 = new MD5CryptoServiceProvider();

// For each block:
md5.TransformBlock(block,block.Length,block,0);

// For last block:
md5.TransformFinalBlock(block,block.Length);

// Get the hash code
byte[] hash = md5.Hash;

猜你在找的C#相关文章