MD5算法简介及其在业务升级工具开发过程中的应用
1. MD5算法简介
Message DigestAlgorithm MD5为计算机安全领域广泛使用的一种散列函数,用以提供消息的完整性保护。简单的来说就是把任意长度的字串变换成固定长度(通常是128位)的16进制串。
MD5的用途主要有:
一致性验证:比如我们从网上下载了某个文件,网站上一般会给出该文件的MD5值,我们下载下来后,可以利用工具计算出新的MD5值,与正确的MD5值进行对照,如果不一样,则可以断定该文件下载出错或被篡改了。
数字签名:可以用MD5算法对发布的程序或发布的消息生成MD5值作为签名等。
密码存储:在传输过程中或存储过程中,直接用明文的密码都是很危险的。可以在传输之前先用MD5加密,存储也不用存储明文,可以直接存储MD5值。在验证时,先把输入的密码转换成MD5值再与存储值进行对比。
2. 业务升级工具开发的痛点分析
业务升级工具的开发主要包括升级和回退,其中主要涉及各个业务相关的SQL文件,开发升级过程最耗时且易出错的地方在于:升级前后各类型sql文件的对比合入。之前的流程通过BeyondCompare对比文件夹,手工判断对应文件是否需要合入,耗时且易出错。因此,急需将该对比过程完成自动化执行,提升开发效率及准确率。
3. MD5算法在业务升级工具开发过程中的应用
由于MD5算法可以用于文件的一致性验证,即在业务升级工具中,任一SQL的内容在升级前后有变动,则该文件需升级考虑。因此,将升级前文件内容读入,生成文件内容的MD5值,对比目标版本的文件内容生成的MD5值,输出不同文件内容的文件名及路径。
参考:
https://baike.baidu.com/item/MD5/212708?fr=aladdin#2
https://www.cnblogs.com/ooobj/p/4270531.html