0

我正在创建上传图像的 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获得与转换器相同的结果?

4

1 回答 1

0

谢谢@Alexei Levenkov,你是对的。我收到了一张似乎已经对其进行了一些转换的图像。如果我从原始文件路径创建数组,我会得到相同的校验和:

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

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

于 2013-09-30T04:04:01.547 回答