本发明属于加密解密技术领域,特别涉及一种针对加密文件的自动解密方法。
背景技术:
随着网络的快速发展,人们可以迅速通过互联网得到想要的信息,这极大方便了日常生活,提高了工作的效率。然而,在带来便利的同时,大量的信息处在裸露的网络空间中,存在时刻被泄漏的风险。现如今的安全软件,大部分都是采用“主动安全防御”的方式,将文件进行加密处理,从而防止文件外泄。
需要读取加密文件时,首先要对其解密,目前通常采用的方式是用户亲自找出加密文件,然后使用专业工具,或向上级发送解密请求。当用户需要进行全盘解密时,再采用通用的方式进行解密,工作量是无法预估的,现有的解密方式在处理大量文件时存在解密效率低下、解密不全的问题,有待改进。
技术实现要素:
本发明的目的,在于提供一种加密文件的解密方法,其无需手工操作,提高解密效率,
为了达成上述目的,本发明的解决方案是:
一种加密文件的解密方法,包括如下步骤:
步骤1,根据加密文件头信息,扫描出加密文件,并将其全路径信息存入数据库;
步骤2,从数据库中读取加密文件全路径信息,进行文件解密并将解密结果存入数据库。
上述步骤1中,启动扫描进程时,还创建互斥量,检测解密进程是否运行,没有运行则启动解密进程。
上述步骤1中,数据库的每个盘符都具有独立的db文件。
上述步骤1中,扫描时采用递归方式。
上述步骤1中,扫描的加密文件在将其全路径信息存入数据库的同时,还将加密文件备份到备份目录下。
上述加密文件在备份目录下的位置和加密文件的原存放文件夹路径一致。
上述步骤2中,读取数据库中是否存在加密文件数据,若存在则取出该文件全路径进行解密操作,不存在则进入等待。
上述步骤2中,在运行解密进程进行文件解密时,还启动看护狗线程看护扫描进程,当扫描进程扫描完成和解密进程解密结束时,判断进程是否退出,若还存在则强杀进程。
采用上述方案后,本发明根据加密文件头信息扫描出所有加密文件,并自动开启解密进程解密,解决了对大量文件解密效率低下、文件解密不全的问题。当用户下发自动解密命令,解密整个加密文件过程无需手工操作,这样既提高了效率,程序通过文件头判断加密文件,又可避免加密文件未解密的问题。
附图说明
图1是本发明的流程图。
具体实施方式
以下将结合附图,对本发明的技术方案进行详细说明。
如图1所示,本发明提供一种加密文件的解密方法,包括如下步骤:
步骤1,扫描进程
根据配置文件加密文件头信息,递归扫描指定路径,扫描出加密文件,并将文件全路径等状态信息存入数据库;
在具体实现时,用户下发命令启动扫描进程,扫描进程启动自身创建一个互斥量保证进程单一实例,并启动看护狗线程,用于检测解密进程是否在运行,没有运行则启动解密进程;扫描进程开始根据给定的路径进行扫描,扫描文件采用递归方式,当扫描到文件时取出文件头和配置的加密文件头比较判断该文件是否为加密文件,是则存入数据库,并将该加密文件备份到指定的备份目录下,进行备份主要是防止解密失败导致文件损坏,主要用于文件的找回,文件在备份目录下的位置和原文件存放的文件夹路径一致;其中,数据库用于存储加密文件信息,且每个盘符都拥有独立的db文件,采用分库的方式提升效率;
步骤2,解密进程
运行解密进程时,读取数据库中是否存在加密文件数据,存在则取出该文件全路径进行解密操作,并将解密结果存入数据库,解密进程启动一个解密线程查询数据库是否存在数据,不存在则进入等待;当解密线程查询数据库,查询待解密的文件数为0,并且扫描的路径已扫描完成则判读为解密结束时,自动退出进程;
在解密进程运行时,同时启动看护狗线程,进行看护扫描进程,当解密进程解密完成时会在配置文件参数写入完成状态值:5,并自动退出,当扫描进程读取配置文件该参数值为5时,扫描进程自动退出。
综合上述,本发明一种加密文件的解密方法,具有以下特点:
(1)当进行大量文件解密时,无须人工一个一个点击,直接指定该路径启动自动解密;
(2)现有方案需要人工查找加密文件,而本发明能够自动扫描文件,根据加密文件头判断是否为加密文件并存入数据库;
(3)自动解密加密文件,提高了效率。