一、概述:

哈希值,不介绍了,可以百度了解,因为最近做了些区块链存档,所以了解到这个东西,除了王小云教授对MD5和sha1的破解和暴力破解外,这个东西有很好的鲁棒性[滑稽],总之就是,文件如果有了更改,哈希值就会改变,对于电子文档、电子证明等有很强的防篡改作用,就是说和源文件不一致了,肯定是被改过了。
王小云教授还做出来了国内的SM3(现在有SM4,不知道是不是也是她们团队做的),这个东西多常用呢?银行肯定是在用的,还有网页用户登录后台等等吧,总之是个保护、加密神器。
我是搞不了SM3该怎么算,再说也没有那么高安全的应用场景,因此,使用python-hashlib的sha224,直接做了个文件的哈希存档小工具,主界面如下:
哈希(HASH)验证记录 - 图1

二、演示:

下面演示图片和文件的一些情况:
1.图片,可以看到,我模拟使用了了原图、原图副本和微信不是用原图直接传输微信自动压缩后的图片,可以看到导出的哈希值,压缩过的明显不一致了,无损副本和原图的哈希值是一样的。所以内容一致的情况下哈希值是一致的,防篡改不防副本。
哈希(HASH)验证记录 - 图2
哈希(HASH)验证记录 - 图3

2.这里是文件展示,可以看到,文件不会受到微信压缩,无论如何传输,哈希值是一致的,然后我将哈希值的文件和输入文件夹导入同一个文件夹,反复运行,可以看到,迭代后的文件,哈希值因为文件的增多在一直变化,但是无论下方第二张图还是第三张图,同名文件的哈希值是完全不改变的。

哈希(HASH)验证记录 - 图4
哈希(HASH)验证记录 - 图5
哈希(HASH)验证记录 - 图6

3.最后,老规矩动图:
哈希(HASH)验证记录 - 图7笔记本电脑一边打包一边做动图有点卡,不过也好,可以看清楚进度条了,工具有进度条和完成提示。

三、工具包:

1.本包为低效率版,建议喜欢死机者下载:
HASHsha.dist.zip
2.本包为高效率版,建议追求效率者下载:
HASHsha.dist.zip