为何对同一个文件进行哈希,取得的哈希值却不同?

booming booming 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
FileStream filestream = new FileStream(".\\dw.rar",FileMode.Open,FileAccess.Read);
MessageBox.Show(filestream.Length.ToString());


long iLength = filestream.Length;
byte[] data = new byte[iLength];
byte[] result;

SHA256 shaM = new SHA256Managed();
result = shaM.ComputeHash(data);
MessageBox.Show(shaM.Hash.ToString());
MessageBox.Show(shaM.HashSize.ToString());

//-----------------------------------
FileStream filestream2 = new FileStream(".\\dw.rar",FileMode.Open,FileAccess.Read);
MessageBox.Show(filestream2.Length.ToString());


long iLength2 = filestream2.Length;
byte[] data2 = new byte[iLength2];
byte[] result2;
SHA256 shaM2 = new SHA256Managed();
result2 = shaM2.ComputeHash(data2);

MessageBox.Show(shaM2.Hash.ToString());
MessageBox.Show(shaM2.HashSize.ToString());
if(shaM2.Hash == shaM.Hash) MessageBox.Show("相等");
else MessageBox.Show("不相等");
...全文

相关推荐

几个比较著名的哈希算法

哈希算法的核心特性在于,即使输入数据稍有变化,其输出的哈希值也会显著不同,这使得哈希算法成为数据校验、数据存储和数据安全的关键工具。1.

yunsongice

Java调用Windows数学DLL的即用型工具包:含JNA库、C源码与完整调用示例

想在Java项目里直接跑Windows上的C语言数学计算逻辑?这个包已经帮你配好了所有必要组件。里面包含一个编译好的mathfundll.dll,封装了加减乘除、平方根等常用数学函数;配套的mathfundll.java定义了Java端如何映射这些函数,testmathfundll.java则演示了从加载DLL、传入double或int参数,到获取返回结果的全过程。jna.jar是运行必需的JNA核心依赖,无需配置JNI环境或写本地方法声明。还附带mathfundll.c源文件,方便你按需修改或重新编译DL

q3r4s5t

哈希算法的实现c++

### 哈希算法在C++中的实现:深入解析与应用#### 一、哈希算法概述哈希算法(Hash Algorithm),又称散列算法,是一种将任意长度的数据转换为固定长度值的算法。

tanghaihua8686

C++获取文件哈希值(hash)和获取torrent(bt种子)磁力链接哈希值

获取Torrent文件磁力链接哈希值的过程与普通文件略有不同。首先,需要有一个Torrent文件,它是包含种子信息的二进制文件,通常由网络用户共享。

weixin_38669881

哈希算法Hash

哈希计算:对每个小块进行哈希计算,计算出对应的哈希值。3. 哈希值组合:将所有哈希值组合成最终的哈希结果。哈希算法 Hash 的安全性哈希算法 Hash 的安全性来自于其设计思想和实现方式。

ruirui8815
评论
收藏 已收藏
分享
返回顶部
booming
VB 16,718 成员 110,520 内容