最近接触了Checksum 和 serializer, 项目上在做数据迁移,从monolitic 迁移至micro services. 这其中的难度之大,可能只有做过的人才能体会,以下是关于做Reconciliation的部分,主要侧重于给文件迁移做Recon。
这篇文章主要讲述MD5 Checksum 的过程,通常当文件被迁移至新的系统时,需要确保所有文件都是正确迁移,Recon的过程就是验证迁移是否正确,主要是通过计算文件的checksum值,将source 和 destination的checksum值进行比对,来确定文件是否正确。
之所以选择MD5 Checksum 是因为目标系统是基于Azure Cloud开发的微服务系统,所有的PDF文件都会储存在Blob Storage, 正好Azure Blob Storage 会自动生成一个Checksum值,那么我们只需要在source 端 生成Checksum, 然后和cloud 端的checksum值做比对即可。
以下是Checksum生成的过程:
实现代码:
public static void ChecksumCalculator(string fileName)
{
// Calculate MD5 checksum of a file
byte[] document = File.ReadAllBytes(fileName);
// Hash the original document data using .NET Core MD5 hash algorithm
MD5 md5Hash = MD5.Create();
byte[] hashedDoc = md5Hash.ComputeHash(document);
// Print out the checksum value after converting to base64 string
Console.WriteLine(Convert.ToBase64String(hashedDoc));
}
以下是关于MD checksum 生成的具体实现:
当然这个过程是要参考以下两张表:
未完待续