MD5、SHA256等Hash算法的实时计算

本文涉及的产品
实时计算 Flink 版,5000CU*H 3个月
简介: MD5、SHA256等Hash算法的实时计算

最近,在项目中,需要计算文件的hash值来对文件进行最终校验,在C#中,MD5、SHA256都是直接可用的。下面以MD5为例,

一般来说,计算文件hash值时,是加载一个文件,然后来读取并计算,如下:

MD5 md = MD5.Create();
buffer = Encoding.ASCII.GetBytes("abc");//这里abc表示从文件中读取的内容
md.TransformBlock(buffer, 0, buffer.Length, buffer, 0);
md.TransformFinalBlock(buffer, 0, 0);
Console.WriteLine(System.Convert.ToBase64String(md.Hash));

以上结算结果

kAFQmDzST7DWlj99KOF/cg==

对于这种方式,小文件来说还好,但是,当文件大小达到10GB左右时,计算耗时大概2Min左右,文件更大,则效果更差。因此,我们需要一种能够实时计算的方式。

 

实时计算hash值,

我们期望,在记录文件的过程中,直接计算hash值,等文件记录完毕时,直接生成相应的文件hash值。

talk is cheap,show you code.

            var buffer = new byte[0];
            MD5 md5 = MD5.Create();
            buffer = Encoding.ASCII.GetBytes("a");
            md5.TransformBlock(buffer, 0, buffer.Length, buffer, 0);
            buffer = Encoding.ASCII.GetBytes("b");
            md5.TransformBlock(buffer, 0, buffer.Length, buffer, 0);
            buffer = Encoding.ASCII.GetBytes("c");
            md5.TransformBlock(buffer, 0, buffer.Length, buffer, 0);
            md5.TransformFinalBlock(buffer, 0, 0);
            Console.WriteLine(System.Convert.ToBase64String(md5.Hash));
kAFQmDzST7DWlj99KOF/cg==

至此,两种方式结果相同,可知,可通过第二种方法来实时运用MD5等来计算hash值。

相关实践学习
基于Hologres轻松玩转一站式实时仓库
本场景介绍如何利用阿里云MaxCompute、实时计算Flink和交互式分析服务Hologres开发离线、实时数据融合分析的数据大屏应用。
Linux入门到精通
本套课程是从入门开始的Linux学习课程,适合初学者阅读。由浅入深案例丰富,通俗易懂。主要涉及基础的系统操作以及工作中常用的各种服务软件的应用、部署和优化。即使是零基础的学员,只要能够坚持把所有章节都学完,也一定会受益匪浅。
目录
打赏
0
0
0
0
3
分享
相关文章
超级好用的C++实用库之sha256算法
超级好用的C++实用库之sha256算法
278 1
超级好用的C++实用库之MD5信息摘要算法
超级好用的C++实用库之MD5信息摘要算法
171 0
国标哈希算法基础:SHA1、SHA256、SHA512、MD5 和 HMAC,Python和JS实现、加盐、算法魔改
国标哈希算法基础:SHA1、SHA256、SHA512、MD5 和 HMAC,Python和JS实现、加盐、算法魔改
889 1
消息摘要算法:MD5加密
消息摘要算法:MD5加密
133 1
Java中MD5加密算法的原理与实现详解
Java中MD5加密算法的原理与实现详解
基于和声搜索优化算法的机器工作调度matlab仿真,输出甘特图
本程序基于和声搜索优化算法(Harmony Search, HS),实现机器工作调度的MATLAB仿真,输出甘特图展示调度结果。算法通过模拟音乐家即兴演奏寻找最佳和声的过程,优化任务在不同机器上的执行顺序,以最小化完成时间和最大化资源利用率为目标。程序适用于MATLAB 2022A版本,运行后无水印。核心参数包括和声记忆大小(HMS)等,适应度函数用于建模优化目标。附带完整代码与运行结果展示。
基于免疫算法的最优物流仓储点选址方案MATLAB仿真
本程序基于免疫算法实现物流仓储点选址优化,并通过MATLAB 2022A仿真展示结果。核心代码包括收敛曲线绘制、最优派送路线规划及可视化。算法模拟生物免疫系统,通过多样性生成、亲和力评价、选择、克隆、变异和抑制机制,高效搜索最优解。解决了物流仓储点选址这一复杂多目标优化问题,显著提升物流效率与服务质量。附完整无水印运行结果图示。
基于免疫算法的最优物流仓储点选址方案MATLAB仿真
基于AES的遥感图像加密算法matlab仿真
本程序基于MATLAB 2022a实现,采用AES算法对遥感图像进行加密与解密。主要步骤包括:将彩色图像灰度化并重置大小为256×256像素,通过AES的字节替换、行移位、列混合及轮密钥加等操作完成加密,随后进行解密并验证图像质量(如PSNR值)。实验结果展示了原图、加密图和解密图,分析了图像直方图、相关性及熵的变化,确保加密安全性与解密后图像质量。该方法适用于保护遥感图像中的敏感信息,在军事、环境监测等领域具有重要应用价值。

热门文章

最新文章