c#中图像的不同Sha1校验和

时间:2013-09-27 03:33:49

标签: c# sha1

我正在创建上传图像的sha1校验和,我的目的是将其与来自第三方的同一图像的sha1校验和进行比较。

我的代码返回一个成功的十六进制,但它与正在发送的校验和不同。我使用在线转换器对此进行了测试:http://hash.online-convert.com/sha1-generator;此转换器返回的十六进制与第三方返回的十六进制相同。

显然我在某个地方错过了一步,但我想不出来。我正在阅读文件:

MemoryStream ms = new MemoryStream();
img.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg);
return ms.ToArray();

然后我尝试使用以下方法对此数组进行十六进制:

SHA1CryptoServiceProvider sha1 = new SHA1CryptoServiceProvider();
string hex = BitConverter.ToString(sha1.ComputeHash(image)).Replace("-", "");

我还尝试在将流转换为数组之前对其进行转换。

如何在http://hash.online-convert.com/sha1-generator处获得与转换器相同的结果?

1 个答案:

答案 0 :(得分:0)

谢谢@Alexei Levenkov,你是对的。我被传递的图像似乎已经完成了一些转换。如果我从原始文件路径创建数组,我得到相同的校验和:

e.g.
byte[] image = File.ReadAllBytes(originalFilePath);

现在我只希望在最终实现中始终可以访问此路径。