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学习课程,适合初学者阅读。由浅入深案例丰富,通俗易懂。主要涉及基础的系统操作以及工作中常用的各种服务软件的应用、部署和优化。即使是零基础的学员,只要能够坚持把所有章节都学完,也一定会受益匪浅。
相关文章
|
5月前
|
算法 Java 数据处理
Java中MD5加密算法的实现
Java中MD5加密算法的实现
|
2月前
|
存储 算法 安全
超级好用的C++实用库之sha256算法
超级好用的C++实用库之sha256算法
88 1
|
2月前
|
算法 数据安全/隐私保护 C++
超级好用的C++实用库之MD5信息摘要算法
超级好用的C++实用库之MD5信息摘要算法
64 0
|
3月前
|
JavaScript 算法 前端开发
国标哈希算法基础:SHA1、SHA256、SHA512、MD5 和 HMAC,Python和JS实现、加盐、算法魔改
国标哈希算法基础:SHA1、SHA256、SHA512、MD5 和 HMAC,Python和JS实现、加盐、算法魔改
470 1
|
3月前
|
算法 JavaScript 前端开发
消息摘要算法:MD5加密
消息摘要算法:MD5加密
58 1
|
4月前
|
算法 安全 Java
Java中MD5加密算法的原理与实现详解
Java中MD5加密算法的原理与实现详解
|
4月前
|
算法 Java 数据处理
Java中MD5加密算法的实现
Java中MD5加密算法的实现
|
22天前
|
算法 安全 数据安全/隐私保护
基于game-based算法的动态频谱访问matlab仿真
本算法展示了在认知无线电网络中,通过游戏理论优化动态频谱访问,提高频谱利用率和物理层安全性。程序运行效果包括负载因子、传输功率、信噪比对用户效用和保密率的影响分析。软件版本:Matlab 2022a。完整代码包含详细中文注释和操作视频。
|
7天前
|
算法 数据挖掘 数据安全/隐私保护
基于FCM模糊聚类算法的图像分割matlab仿真
本项目展示了基于模糊C均值(FCM)算法的图像分割技术。算法运行效果良好,无水印。使用MATLAB 2022a开发,提供完整代码及中文注释,附带操作步骤视频。FCM算法通过隶属度矩阵和聚类中心矩阵实现图像分割,适用于灰度和彩色图像,广泛应用于医学影像、遥感图像等领域。
|
8天前
|
算法 调度
基于遗传模拟退火混合优化算法的车间作业最优调度matlab仿真,输出甘特图
车间作业调度问题(JSSP)通过遗传算法(GA)和模拟退火算法(SA)优化多个作业在并行工作中心上的加工顺序和时间,以最小化总完成时间和机器闲置时间。MATLAB2022a版本运行测试,展示了有效性和可行性。核心程序采用作业列表表示法,结合遗传操作和模拟退火过程,提高算法性能。