繁体   English   中英

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

[英]Different Sha1 checksum of image in c#

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM