脚本需求来源及应用场景
信息安全很重要的一个点是信息的完整性,随时信息数量的增加,信息保存时间的增长,信息完整性验证是一个艰难且需直面的问题。数据不完整的原因多且常见,简单列举几例如下。文件夹复制的过程中,部分文件复制失败而未注意到提醒(文件占用等)。网盘保存时,被错误识别为违规而删除。固态硬盘不当保存造成文件丢失(固态硬盘断电情况下半年就会丢失大量数据)。劣质光盘染料变质或者划痕。机械硬盘在强磁环境下数据随机丢失。杀毒软件误删除。以及十分常见的人为误操作(取用文件时复制选择了剪切,不小心删除)。
我喜欢按年或者更长的周期保存照片、文档等个人产出的信息,面对一个2015年的文件夹,很难知道里面的内容是否完整。基于此需要,写了此脚本,并制定了文件完整性验证的一个可靠且简单方案。
脚本功能
计算文件夹内所有文件的MD5和SHA256,保存成csv格式,包含文件路径、文件修改时间、创建时间、大小、MD5、SHA256,可用于记录文件夹信息,验证文件夹一致性。
操作方法
操作:双击运行。
第一步,选择要计算的文件夹
第二步,选择输出文件保存位置
第三步,输入备注信息。(可选,会作为输出文件名的一部分)
计算完成提醒:
输出文件:
会输出两个文件,一个为文件夹详细信息,一个为文件夹可比信息。文件名分四部分,信息计算时间 文件夹名 备注 可比/详细信息
文件夹详细信息包括完整路径、创建及修改时间、文件大小、MD5、SHA256。
可比文件夹信息包括相对路径、文件大小、MD5、SHA256。
只要两个文件相同,可比文件夹信息.csv文件就是相同的,通过计算可比文件夹信息.csv,可以判断文件夹是否一致。
比对效果演示
下图是比对效果演示,两个文件夹分别在我的电脑和移动硬盘上(不在同一地理位置),分别计算HASH,对可比文件夹再计算一次HASH(此处使用7zip软件进行,当然也可以用本脚本进行)。显然,两个文件夹信息完全一致。 如果文件夹不一致,可以快速定位不一致的点,及时应对。
采用脚本可以方便的进行文件夹异地一致性验证(异地保存场景),不同时刻一致性验证(每年检查一次)。