一种数据文件保护方法及装置\n技术领域\n[0001] 本发明涉及信息安全领域,特别涉及一种数据文件保护方法及装置。\n背景技术\n[0002] 日常生活中U盘得到了越来越广泛的使用,但在U盘使用过程中,经常容易因为丢失、通过U盘随意拷贝文件或其他数据造成个人或企业机密信息的泄露。目前也有一些解决方案或产品来解决这些问题,比如加密U盘、指纹、口令、权限等方式通过安全途径来对数据信息进行保护,但是这些解决方案在U盘非法使用者获得合法口令或权限后,还是可以对U盘内的数据进行拷贝和转移,还是会造成数据信息的泄露。\n[0003] 加密U盘,加密U盘包括硬件加密和软件加密两种技术,硬件加密技术一般通过U盘的主控芯片进行加密,安全级别高,不容易被破解、成本较高;软件是通过外置服务端或内置软件操作,对U盘文件进行加密,安全性因工而异,成本相对较低。\n[0004] 精锐系列的U盘加密锁是北京深思洛克研发的安全U盘加密锁产品,对应网址为http://www.sense.com.cn/product_4.html,其中详细公开了本申请人开发的精锐系列U盘加密锁软件保护装置的具体参数性能和工作原理。该系列U盘加密锁是于智能卡技术的基础上集成闪存功能的加密产品,U盘加密锁既具备加密锁的全部功能,同时集成的大量存储功能,相当于把一个加密锁和U盘封装在一起,具有强安全性,快速通讯,互不干扰,可靠性高的特征。U盘加密锁采用的核心安全芯片基于全球最高安全等级CC EAL5+设计,U盘部分可实现不同功能的分区划分,例如:虚拟CDROM、密码存储区、API调用私密区。产品特点:\n硬件不可复制;支持标准C语言编程,软件代码可“移植”到加密锁内;安全便捷的远程安全控制功能,可快速远程更新加密锁内数据;内置标准的安全算法(RSA、AES、DES及3DES、SHA-\n1);U盘可实现CDROM、密码区、隐藏区、普通存储区等多分区的灵活应用。\n[0005] U盘加密锁中的U盘部分包括四个分区:\n[0006] CDROM:CD-ROM分区主要用于存放制度数据(文件),或通过此分区替代光盘用于软件发行;\n[0007] 公共区:公开存储区类似普通U盘,具有存储功能;\n[0008] 密码区:即带密码保护的公开存储区,需要使用自带的密码登录工具进行登录操作,密码区可用于存放一些需要保护的文件或数据,即使设备不慎丢失,没有密码的人也无法看到密码区内容;\n[0009] 隐藏区:即在计算机上不显示盘符,无法直接访问读取其中的数据,用于保护私密数据。\n[0010] 加壳,就是在被保护的可执行程序文件或动态链接库文件(如EXE、DLL)中插入一段代码(即壳代码),并将被保护的软件的入口点即软件执行的第一条指令指向壳代码,然后利用特殊的算法,对可执行程序文件或动态链接库文件里的资源进行压缩、加密,改变其原来的特征码,加密隐藏一些数据信息,以达到缩小文件体积或加密程序编码的目的。类似WINZIP效果,只不过这个压缩之后的文件可以独立运行,解压过程完全隐蔽,都在内存中完成。它们附加在原程序上通过Windows加载器载入内存后,壳代码先于原始程序执行,得到控制权,执行过程中对原始程序进行解密、还原,还原完成后再把控制权交还给原始程序,执行原来的部分代码。加上外壳后,原始程序代码在磁盘文件中一般是以加密后的形式存在的,只在执行时在内存中还原,这样可以比较有效地防止破解者对程序文件的非法修改,同时也可以防止程序被静态反编译。软件的壳分为:加密壳、压缩壳、伪装壳、多层壳等类,目的都是为了隐藏程序真正的OEP(入口点,防止被破解)。\n[0011] 脱壳,就是脱掉程序所加的壳,把内存中真正还原的程序抓取下来,修正后编成可执行的文件,脱壳的一般流程是:查壳->寻找OEP->DUMP->修复。\n[0012] 现有技术中还提供了一种基于软件保护装置对软件进行加壳保护的方式,即在壳代码中加入对软件保护装置的访问,并在访问软件保护装置之后通过判断某些条件是否成立来确定软件是否可以继续执行,最简单的判断就是软件保护装置是否存在,即若找到了软件保护装置,则允许软件执行,若找不到软件保护装置,就不让软件继续运行。\n发明内容\n[0013] 有鉴于此,本发明提供了一种U盘加密锁内数据文件的保护方法及装置,以解决存储设备中数据信息容易泄露的安全隐患问题。\n[0014] 本发明不仅适用于WINDOWS操作系统,也适用于其他操作系统,如LINUX系统、UNIX系统。\n[0015] 根据本发明的一个方面,提供一种数据文件保护的装置,所述装置包括写入设备和存储设备,其特征在于,\n[0016] 所述写入设备,位于主机中,包括加密模块、加壳模块、存储模块和设置模块,其中,\n[0017] 加密模块,用于通过用户选择或默认加密算法对数据文件进行加密处理,并向数据文件的文件头写入标识信息;\n[0018] 加壳模块,用于给可执行程序加壳,并向壳代码中写入标识信息;\n[0019] 存储模块,用于存储加密算法密钥信息、标识信息及其他使用信息;\n[0020] 设置模块,用于将加壳后的可执行程序和加密后的数据文件写入存储设备中,和/或向存储设备中写入数据文件类型与关联应用程序映射表信息、加密密钥;\n[0021] 所述存储设备,是具有存储功能的高容量移动硬件设备,通过接口与主机电性连接。\n[0022] 根据本发明的一个方面,提供一种数据文件的保护装置,所述装置包括写入设备和存储设备,其特征在于,\n[0023] 所述写入设备,位于主机中,包括加密模块、加壳模块、存储模块和设置模块,其中,\n[0024] 加密模块,用于通过用户选择或默认加密算法对数据文件进行加密处理,并向数据文件的文件头写入标识信息;\n[0025] 加壳模块,用于给可执行程序加壳,并向壳代码中写入标识信息;\n[0026] 存储模块,用于存储加密算法密钥信息、标识信息及其他使用信息;\n[0027] 设置模块,用于将加壳后的可执行程序和加密后的数据文件写入存储设备中,和/或向存储设备中写入数据文件类型与关联应用程序映射表信息、加密密钥;\n[0028] 所述存储设备,是具有存储功能的高容量移动硬件设备,通过接口与主机电性连接,实现即插即用功能;\n[0029] 其中,所述装置还包括执行设备,所述执行设备内置于存储设备中,用于监控存储设备中的数据文件双击或Enter键打开动作,并根据文件关联应用程序信息查找可执行程序,以调试器方式运行可执行程序。\n[0030] 根据本发明的一个方面,所述存储设备中的可执行程序和数据文件是一对多的关系。\n[0031] 根据本发明的一个方面,所述执行设备为自动运行状态,即存储设备与主机连接时,执行设备就自动运行。\n[0032] 根据本发明的一个方面,所述加密模块加密数据文件的加密算法是对称算法或非对称算法,所述对称算法包括AES、DES、TDES;所述非对称算法包括RSA、ECC。\n[0033] 根据本发明的一个方面,提供一种数据文件的保护方法,包括:\n[0034] 步骤1: 通过写入设备从主机中选择或下载要使用的可执行程序,加壳可执行程序;\n[0035] 步骤2:通过写入设备选择要保护的数据文件及要使用的加密方案加密数据文件;\n[0036] 步骤3:将加壳后的可执行程序和加密后的数据文件写入存储设备;\n[0037] 步骤4:使用时,将设置好的存储设备和主机连接;\n[0038] 步骤5:通过双击或Enter键打开存储设备中的加壳后的可执行程序;\n[0039] 步骤6:通过可执行程序选择要加载的数据文件;\n[0040] 步骤7:可执行程序判断加载的数据文件是否为支持处理的文件类型,如果是,执行步骤8,否则,提示用于该文件类型与可执行程序不匹配;\n[0041] 步骤8:可执行程序判断数据文件是否具有与可执行程序内部存储的一致的标识信息,如果是,执行步骤9,否则,执行步骤11;\n[0042] 步骤9:可执行程序解密数据文件;\n[0043] 步骤10:可执行程序打开解密后的数据文件;\n[0044] 步骤11:直接打开数据文件。\n[0045] 根据本发明的一个方面,可执行程序加壳后直接写入存储设备。\n[0046] 根据本发明的一个方面,所述存储设备包括U盘、U盘加密锁及其他存储设备。\n[0047] 根据本发明的一个方面,向可执行程序写入标识信息,包括一个可执行程序包括多个标识信息的情况;其中,当用户自定义可执行程序关联文件类型时,默认可选的文件类型各自有一个独立的标识信息,如果为可执行程序选择特定的文件类型,则在加壳时将所述特定的文件类型对应的标识信息同时写入所述可执行程序。\n[0048] 根据本发明的一个方面,向可执行程序写入标识信息,包括多个可执行程序包含一个相同的标识信息的情况;其中,当用户自定义可执行程序关联文件类型时,不管用户选择了几种文件类型,只向可执行程序写入一个标识信息。\n[0049] 根据本发明的一个方面,向可执行程序写入标识信息,包括一个可执行程序只对应一个标识信息的情况;其中,根据要保护的文件类型选择该文件类型默认关联的应用程序时或自定义可执行程序关联文件类型时,对每个可执行程序设置一个唯一的标识信息。\n[0050] 根据本发明的一个方面,所述标识信息写在程序代码中,或者存储在写入设备的存储模块中。\n[0051] 根据本发明的一个方面,加密数据文件时向数据文件写入标识信息,包括:默认可选的各种文件类型都对应一个独立的标识信息,加密数据文件,根据数据文件类型将不同类型对应的独立标识写入数据文件头。\n[0052] 根据本发明的一个方面,加密数据文件时向数据文件写入标识信息,包括:多个可执行程序包含一个相同的标识信息时,将该标识信息写入数据文件的文件头。\n[0053] 根据本发明的一个方面,加密数据文件时向数据文件写入标识信息,包括:一个可执行程序只对应一个标识信息时,根据不同可执行程序默认关联的文件类型,针对不同的数据文件写入对应类型可执行程序的标识信息。\n[0054] 根据本发明的一个方面,所述向可执行程序和数据文件写入标识信息是后台自动写入设置标识信息,或者由用户手动设置标识信息。\n[0055] 根据本发明的一个方面,所述自动方式设置标识信息是指后台通过算法或随机数生成的预设好的信息。\n[0056] 根据本发明的一个方面,所述手动设置标识信息是指用户在选择完可执行程序后,通过在写入设备上的文本框中输入自定义的标识信息。\n[0057] 根据本发明的一个方面,所述步骤1中加壳可执行程序时,在壳代码中加入检测校验代码。\n[0058] 根据本发明的一个方面,所述步骤3中将数据文件写入存储设备时保持原文件名或者自定义文件名称。\n[0059] 根据本发明的一个方面,所述步骤6中通过可执行程序选择要加载的数据文件包括:可执行程序打开界面的菜单项中有“打开”或“选择”功能,用于选择主机或存储设备中的数据文件;或者直接将要打开的数据文件拖到可执行程序上。\n[0060] 根据本发明的一个方面,所述步骤8中可执行程序根据标识信息判断要加载的数据文件是否为具有相同标识具体包括:可执行程序读取当前加载的数据文件的文件头,查看文件头中是否包括和可执行程序中存储的相同的标识信息,如果有,则表示为匹配的数据文件。\n[0061] 通过本发明所取得的有益效果在于:可以防止因随意拷贝或木马病毒等原因所造成的信息泄密,提高安全性。\n附图说明\n[0062] 图1为按照本发明的一种数据保护装置的一优选实施例的整体结构图。\n[0063] 图2为按照本发明的一种数据保护装置的另一优选实施例的结构图。\n[0064] 图3为按照本发明的一种数据保护方法的优选实施方式的整体流程示意图。\n[0065] 图4为按照本发明的一种数据保护方法的另一优选实施方式的整理流程图。\n[0066] 图5为按照本发明的一种数据保护方法的实施例1的流程示意图。\n[0067] 图6为按照本发明的一种数据保护方法的实施例2的流程示意图。\n具体实施方式\n[0068] 为使本发明的目的、技术方案及优点更加清楚明白,以下参照附图并举实施例,对本发明进一步详细说明。\n[0069] 本发明不仅适用于WINDOWS操作系统,还适用于其他操作系统,如LINUX操作系统、UNIX系统。\n[0070] 图1为按照本发明的一种数据文件保护装置的一优选实施例的整体结构图。\n[0071] 如图1所示,根据本发明的一个实施例, 该数据保护装置包括:主机、存储设备。\n[0072] 主机中具有写入设备,其中,写入设备包括加密模块、加壳模块、存储模块和设置模块。\n[0073] 其中,所述加密模块用于通过用户选择或默认加密算法对数据文件进行加密处理,并向数据文件的文件头写入标识信息;\n[0074] 所述加壳模块用于给可执行程序加壳,并向壳代码中写入标识信息;\n[0075] 所述存储模块用于存储加密算法密钥信息、标识信息及其他使用信息;\n[0076] 所述设置模块用于将加壳后的可执行程序和加密后的数据文件写入存储设备中,还可以向存储设备中写入数据文件类型与关联应用程序映射表信息、加密密钥等信息。\n[0077] 存储设备通过USB接口与主机电连接。根据本发明的其他实施例,存储设备也可以通过其他的电连接接口连接到主机上,由于其不属于本发明的核心,因此具体的电连接接口不再予以详细描述,本领域的人员均可知道这些接口连接方式。\n[0078] 如图1所示,存储设备中存储了多个数据文件和可执行程序。在图中以数据文件1、数据文件2、数据文件N的形式标注;可执行程序以可执行程序1、可执行程序2、可执行程序N的形式标注。\n[0079] 图2为按照本发明的一种数据文件保护装置的另一优选实施例的整体结构图。\n[0080] 如图2所示,根据本发明的一个实施例,该数据保护装置包括:主机、U盘加密锁。\n[0081] 主机中具有写入设备,写入设备包括加密模块、加壳模块、存储模块和设置模块。\n[0082] 其中,所述加密模块用于通过用户选择或默认加密算法对数据文件进行加密处理,并向数据文件的文件头写入标识信息;\n[0083] 所述加壳模块用于给可执行程序加壳,并向壳代码中写入标识信息;\n[0084] 所述存储模块用于存储加密算法密钥信息、标识信息及其他使用信息;\n[0085] 所述设置模块用于将加壳后的可执行程序和加密后的数据文件写入存储设备中,还可以向存储设备中写入数据文件类型与关联应用程序映射表信息、加密密钥等信息。\n[0086] U盘加密锁包括CDROM区和其他区域,其他区域包括公共区、密码区、隐藏区,为更清楚的显示本发明的内容,所以并没有绘制公共区、密码区和隐藏区,U盘加密设备通过USB接口与主机电连接。根据本发明的其他实施例,存储设备也可以通过其他的电连接接口连接到主机上,由于其不属于本发明的核心,因此具体的电连接接口不再予以详细描述,本领域的人员均可知道这些接口连接方式。\n[0087] 如图2所示,U盘加密锁的CDROM区中还具有执行设备。根据本发明的一个实施例,所述执行设备为内置在U盘加密锁中的软件程序,为自启动状态。当U盘加密锁与主机连接就自动启动该执行设备,从而用于监测对U盘加密锁中数据文件的鼠标双击或键盘Enter键动作,并根据使用者操作的文件类型关联应用程序的关系查找对应U盘加密锁中存储的可执行程序,装载并以调试器方式运行查找到的可执行程序。\n[0088] 但是本领域的技术人员完全可以理解,执行设备完全可以根据实际使用需求,以硬件芯片、硬件集成电路、嵌入式芯片、固件等多种形式来实现监控装置的功能,其无需本领域的技术人员付出创造性的劳动,因此执行设备作为软件模块实现的形式仅仅是本发明的一种示例性实施例,而并不是对本发明的一种限制。上述硬件芯片、硬件集成电路、嵌入式芯片、固件等多种形式实现的监控装置均在本发明的保护范围内。\n[0089] 如图2所示,U盘加密锁中其他区中存储了多个数据文件和可执行程序。在图中以数据文件1、数据文件2、数据文件N的形式标注;可执行程序以可执行程序1、可执行程序2、可执行程序N的形式标注。\n[0090] 根据本发明的一个实施例,U盘加密锁,具有加密锁软件保护功能,用于存储执行设备、数据文件及应用程序数据内容、映射表等信息。\n[0091] 如图1、图2所示,一种数据文件保护装置,具体包括:写入设备和存储设备,其中,[0092] 写入设备内置于主机中,写入设备包括加密模块、加壳模块、存储模块和设置模块,其中,\n[0093] 所述加密模块,用于对要保护的数据文件进行加密处理,并向数据文件的文件头写入标识信息;\n[0094] 所述加壳模块,用于加壳可执行程序,并向可执行程序壳代码中写入标识信息;\n[0095] 所述存储模块,用于存储加密算法密钥及其他相关信息;\n[0096] 所述设置模块,用于将加壳后的可执行程序和加密后的数据文件写入存储设备中,还可以向存储设备中写入数据文件类型与关联应用程序映射表信息、加密密钥等信息;\n[0097] 所述存储设备,是指具有存储功能的高容量移动硬件设备,通过接口与主机电连接,实现对存储设备内的数据的处理操作。\n[0098] 根据本发明的一个实施方式,所述加密模块加密数据文件的加密算法可以是对称算法或非对称算法,其中对称算法包括AES、DES、TDES;非对称算法包括RSA、ECC等。\n[0099] 根据本发明的一个方面,所述存储设备包括U盘、U盘加密锁及其他存储设备。\n[0100] 根据本发明的一个实施方式,所述可执行程序和数据文件可以是一对多的关系。\n[0101] 图3为按照本发明的一种数据保护方法的一优选实施例的整体流程示意图。\n[0102] 图4为按照本发明的一种数据文件保护方法的另一优选实施例的整体流程示意图。\n[0103] 本发明中,图3、图4中所述的实施例均为数据文件的保护方法的流程示意图,其区别在于,图3中所述的方法是通过先打开可执行程序,然后加载数据文件的方式;图4中所示的方法是可以通过双击或Enter键数据文件直接打开的方式。\n[0104] 如图3所示,一种数据文件保护方法,具体包括:\n[0105] 步骤1: 通过写入设备从主机中选择或下载要使用的可执行程序,加壳可执行程序;\n[0106] 步骤2:通过写入设备选择要保护的数据文件及要使用的加密方案加密数据文件;\n[0107] 步骤3:将加壳后的可执行程序和加密后的数据文件写入存储设备;\n[0108] 步骤4:使用时,将设置好的存储设备和主机连接;\n[0109] 步骤5:通过双击或Enter键打开存储设备中的加壳后的可执行程序;\n[0110] 步骤6:通过可执行程序选择要加载的数据文件;\n[0111] 步骤7:可执行程序判断加载的数据文件是否为支持处理的文件类型,如果是,执行步骤8,否则,提示用于该文件类型与可执行程序不匹配;\n[0112] 步骤8:可执行程序判断数据文件是否具有与可执行程序内部存储的一致的标识信息,如果是,执行步骤9,否则,执行步骤11;\n[0113] 步骤9:可执行程序解密数据文件;\n[0114] 步骤10:可执行程序打开解密后的数据文件;\n[0115] 步骤11:直接打开数据文件。\n[0116] 根据本发明的一个方面,可执行程序加壳后可以直接写入存储设备。\n[0117] 根据本发明的一个方面,步骤1中,使用者选择可执行程序时,包括但不限于如下两种方式:\n[0118] 1、自定义可执行程序关联(即可执行)的文件类型。比如选择一个可执行程序后,可以选择该可执行程序所支持的文件类型,如:通过复选框选择文本文件(.txt)、WORD文件(.doc/.docx)等文件类型。\n[0119] 2、根据要保护的文件类型选择该文件类型默认关联的应用程序。即如果要保护的是.txt(文本文件),系统默认关联的可执行程序为NOTEPAD.EXE,那么就可以直接选择NOTEPAD.EXE程序。此种方式可以不用选择可执行程序所支持的文件类型,写入设备设置其支持的是默认关联的文件类型。\n[0120] 根据本发明的一个方面,为便于用户选择可执行程序,还可以采用提示或默认推荐的方式进行辅助。包括但不限于以下几种方式:\n[0121] 1.推荐常用文件类型关联的应用程序并说明其对应的文件类型;\n[0122] 2.显示文件选择列表,让使用者选择要保护的是哪种类型的文件,然后写入设备根据用户选择的文件类型推荐可以选择的可处理该类型文件的可执行程序;\n[0123] 3.选择完可执行程序后,提示用户,选择的可执行程序可以处理哪些类型的文件等。\n[0124] 根据本发明的一个方面,步骤1中,加壳可执行程序的同时向可执行程序写入标识信息。\n[0125] 根据本发明的一个方面,步骤2中,加密数据文件的同时向数据文件的文件头部分写入标识信息。\n[0126] 根据本发明的一个方面,所述标识信息可理解为一种加密标识,用于通过判断数据文件头中的标识和可执行程序中的标识是否一致,来确定数据文件是否加过密。\n[0127] 标识信息可以是一段字符串或二进制数据等形式,在加壳可执行程序时,向壳代码中写入标识信息,加密数据文件时,向数据文件的文件头写入标识信息。使用过程中,通过加壳后的可执行程序打开数据文件时,可执行程序会校验该数据文件的文件头中有没有与可执行程序中存储的相同的标识信息,如果有,则认为是匹配的加过密的数据文件,解密数据文件;如果没有与之相同的标识信息,则无法打开数据文件,或者无需解密,直接打开数据文件。\n[0128] 根据本发明的一个方面,向可执行程序写入标识信息,包括但不限于以下几种方式:\n[0129] 1.一个可执行程序包括多个标识信息。用户自定义可执行程序关联文件类型(即用户先选择可执行程序,之后通过如复选框形式选择其所要支持的文件类型)时,默认可选的文件类型各自有一个独立的标识信息,可执行程序选择了哪些文件类型,加壳时就会将这些文件类型对应的标识信息同时写入可执行程序。\n[0130] 2.多个可执行程序包含一个相同的标识信息。当用户自定义可执行程序关联文件类型时,不管选择了几种文件类型,只向可执行程序写入一个标识信息,选择文件类型只是为了设置可执行程序支持处理的文件类型。比如存在多个可执行程序时,它们使用的标识信息是同一个,区别在于每个可执行程序所支持的文件类型不一致。\n[0131] 3.一个可执行程序只对应一个标识信息,根据要保护的文件类型选择该文件类型默认关联的应用程序时或自定义可执行程序关联文件类型时,对每个可执行程序设置一个唯一的标识信息。\n[0132] 根据本发明的一个方面,所述标识信息可以写在程序代码中,也可以存储在写入设备的存储模块中,向可执行程序或数据文件中写入时,可以从存储模块中读取相应标识信息进行写入操作。\n[0133] 根据本发明的一个方面,加密数据文件时向数据文件写入标识信息,包括:\n[0134] 1.如上述向可执行程序中写入标识信息的方式1中所述,默认可选的各种文件类型都对应一个独立的标识信息,加密数据文件,根据数据文件类型将不同类型对应的独立标识写入数据文件头。\n[0135] 2.多个可执行程序包含一个相同的标识信息时,将该标识信息写入数据文件的文件头。\n[0136] 3.一个可执行程序只对应一个标识信息时,根据不同可执行程序默认关联(即支持处理)的文件类型,针对不同的数据文件写入对应类型可执行程序的标识信息。\n[0137] 根据本发明的一个方面,所述向可执行程序和数据文件写入标识信息可以后台自动写入,也可以是用户手动设置标识信息。\n[0138] 根据本发明的一个方面,所述自动方式设置标识信息是指后台通过算法或随机数生成的预设好的信息,开发人员可以自行定制。\n[0139] 根据本发明的一个方面,所述手动设置标识信息是指用户可以在选择完可执行程序后,通过在写入设备上的文本框中输入自己定义的标识信息。\n[0140] 根据本发明的一个方面,所述步骤1中加壳可执行程序时,可以在壳代码中加入一些检测校验代码,比如加入反调试代码等,还包括文件类型检测代码,用以检测该应用程序是否可以打开某些文件类型的数据文件,当运行可执行程序时,会先进行上述的功能校验,校验通过后,才可执行后续操作。\n[0141] 根据本发明的一个方面,所述步骤3中将数据文件写入存储设备时可以保持原文件名,也可以自定义文件名称。\n[0142] 根据本发明的一个方面,所述步骤6中通过可执行程序选择要加载的数据文件包括:可执行程序打开界面的菜单项中有“打开”或“选择”功能,该功能类似WORD菜单的打开文件或txt文本文件菜单项中“-文件-打开”功能,该功能为可以选择主机或存储设备中的数据文件;也可以直接将要打开的数据文件拖到可执行程序上。\n[0143] 根据本发明的一个方面,所述步骤8中可执行程序根据标识信息判断要加载的数据文件是否为具有相同标识具体包括:可执行程序读取当前加载的数据文件的文件头,查看文件头中是否包括和可执行程序中存储的相同的标识信息,如果有,则表示为匹配的数据文件。\n[0144] 图4中所示的方法是可以通过双击或Enter键数据文件直接打开的方式。\n[0145] 图4为一种数据保护方法的另一优选实施例,图4所示的方法是可以通过双击或Enter键数据文件来直接打开数据文件的过程。如图4所示,一种数据文件的保护方法,具体包括:\n[0146] 1.通过写入设备从主机中选择或下载要使用的可执行程序,加壳可执行程序;\n[0147] 2.通过写入设备选择要保护的数据文件及要使用的加密方案;\n[0148] 3.将加壳后的可执行程序和加密后的数据文件写入U盘加密锁;\n[0149] 4.将设置好的存储设备和主机连接,自动运行U盘加密锁内的执行设备;\n[0150] 5.执行设备监控U盘加密锁中的数据文件的双击或Enter键操作;\n[0151] 6. 执行设备根据数据文件与可执行程序的关联关系查找加密设备中存储的可执行程序;\n[0152] 7. 执行设备以调试器方式运行可执行程序;\n[0153] 8. 可执行程序判断要打开的数据文件是否需要解密,如果是,执行步骤9,如果不需要解密,则直接打开数据文件;\n[0154] 9. 可执行程序解密数据文件;\n[0155] 10.可执行程序打开解密后的数据文件。\n[0156] 根据本发明的一个方面,U盘加密锁中的CDROM区中存储有自动运行的执行设备。\n所述执行设备用于监控U盘加密锁中数据文件的双击或 Enter操作,根据数据文件关联的应用程序信息查找对应的可执行程序,之后以调试器方式运行可执行程序,解密并打开数据文件。\n[0157] 根据本发明的一个方面,加壳可执行程序时,除了在壳代码中加入反调试、文件类型检测代码,还可以加入验证U盘加密锁是否存在的代码,用以检测当前是否已经插入U盘加密锁。\n[0158] 根据本发明的一个方面,步骤6中执行设备根据数据文件与可执行程序的关联关系查找锁中存储的可执行程序具体包括:\n[0159] 1.写入设备将可执行程序和数据文件写入U盘加密锁时,已经将之间对应的标识关系通过映射表存储到U盘加密锁中,所述对应关系的映射表指数据文件中存储的标识信息以及可执行程序中存储的标识信息,执行设备通过映射表可以获悉当前打开的数据文件关联的可执行程序,然后以调试器打开可执行程序。\n[0160] 2.通过文件类型关联应用程序映射表来查找。如U盘加密锁中预先存储常用文件类型关联应用程序的映射表,对于不通过写入设备存入U盘加密锁的数据文件,通过映射表查找关联的应用程序。\n[0161] 根据本发明的一个方面,步骤8中可执行程序判断要打开的数据文件是否需要解密包括:可执行程序读取数据文件的文件头,查看文件头中是否具有与可执行程序内部存储的相同的标识信息,如果有,则认为是加密过的数据文件,需要解密后执行;如果没有,则认为是未加密的数据文件,直接打开。\n[0162] 实施例1\n[0163] 图5为按照本发明的一种数据保护方法的实施例1的流程示意图。\n[0164] 如图5所示,本实施例要保护的数据文件包括扩展名为.txt的文本文件a.txt和.doc的WORD文件b.doc,本实施例中存储设备为普通U盘。根据本实施例中的一种数据文件保护方法,具体步骤包括:\n[0165] 1.使用者通过写入设备选择可执行程序,然后通过复选框选择该可执行程序要支持的文件类型(如默认复选框项包括:txt、doc、pdf),加壳可执行程序并向壳代码中写入标识信息。其中,每个文件类型都默认对应一个预设好的标识信息,该标识信息可以是默认程序中写好的,也可以是根据算法生成的16个字节的二进制数,如其中txt文件类型标识信息为:“0x11,0x22,0x33,0x44,0x55,0x66,0x77,0x88,0x99,0xaa,0xbb,0xcc,0xdd,0xee,\n0xff”,doc文件类型默认对应的标识为:“0x11,0x22,0x33,0x44,0x55,0x66,0x77,0x88,\n0x99,0xaa,0xbb,0xcc,0xdd,0xee,0xff” ,pdf文件类型默认标识为:“0x1,0x2,0x3,0x4,\n0x5,0x6,0x7,0x8,0x9,0x9,0x8,0x7,0x6,0x5,0x4,0x3”。\n[0166] 本实施例中,假定使用者通过写入设备从主机中选择可执行程序NOTEPAD.EXE,之后选择可支持的文件类型包括.txt和.doc,加壳可执行程序时,则会向壳代码中写入.txt和.doc的标识信息:“0x11,0x22,0x33,0x44,0x55,0x66,0x77,0x88,0x99,0xaa,0xbb,\n0xcc,0xdd,0xee,0xff”和“0x11,0x22,0x33,0x44,0x55,0x66,0x77,0x88,0x99,0xaa,\n0xbb,0xcc,0xdd,0xee,0xff”。\n[0167] 加壳可执行程序时,向壳代码中写入反调试、校验文件类型等代码信息,校验文件类型包括选择支持的文件类型txt和doc。\n[0168] 2.选择要保护的数据文件(即a.txt和b.doc),选择要使用的加密方案加密数据文件,加密的同时根据数据文件类型写入设备分别向数据文件a.txt的文件头写入txt文件类型对应的独立标识:“0x11,0x22,0x33,0x44,0x55,0x66,0x77,0x88,0x99,0xaa,0xbb,\n0xcc,0xdd,0xee,0xff”;向b.doc的文件头写入doc文件类型对应的标识信息:“0x11,0x22,\n0x33,0x44,0x55,0x66,0x77,0x88,0x99,0xaa,0xbb,0xcc,0xdd,0xee,0xff”。\n[0169] 3.将加壳后的数据文件和加密后的数据文件写入U盘,写入时保持原文件名;\n[0170] 4.将设置好的U盘与主机通过USB接口连接;\n[0171] 5.使用者打开U盘,双击或键盘Enter键打开加壳后的可执行程序NOTEPAD.EXE[0172] 6.通过可执行程序的选择功能选择要处理的数据文件,可以选择U盘内部的数据文件(包括通过写入设备写入的和直接拷贝进U盘的),也可以选择主机上的数据文件,本实施例中假定选择的是U盘中的a.txt;\n[0173] 7. 可执行程序判断加载的数据文件是否为支持处理的文件类型,如果是,执行步骤8,否则,提示用于该文件类型与可执行程序不匹配;\n[0174] 8. 可执行程序判断数据文件是否具有与可执行程序内部存储的一致的标识信息,本实施例中,选择的数据文件为a.txt,a.txt的文件头中和可执行程序NOTEPAD.EXE中存储了相同的标识信息:“0x11,0x22,0x33,0x44,0x55,0x66,0x77,0x88,0x99,0xaa,0xbb,\n0xcc,0xdd,0xee,0xff” ;\n[0175] 9. 可执行程序解密数据文件a.txt;\n[0176] 10.可执行程序NOTEPAD.EXE打开解密后的a.txt文件。\n[0177] 本实施例也可以处理.doc文件类型的文件,还可以处理主机中或直接拷贝到U盘中不含有标识信息的数据文件。使用过程中,区别在于,通过可执行程序选择数据文件时,可执行程序会校验选择的文件类型是否是支持的可以处理的,如果是,则直接打开数据文件,无需解密。通过本实施例提供的方案,可以自由选择需要保护的文件,同时也不妨碍打开其他的文件,为用户的使用提供了较大的便利和安全性。\n[0178] 实施例2\n[0179] 参见图6,本实施例与实施例1的区别在于1-2步骤,其他步骤类似,本实施例中1-2步骤为:\n[0180] 1.使用者选择可执行程序,通过复选框选择支持的文件类型,加壳可执行程序。其中,所有可执行程序均使用同一个标识信息: “0x11,0x22,0x33,0x44,0x55,0x66,0x77,\n0x88,0x99,0xaa,0xbb,0xcc,0xdd,0xee,0xff”,其区别在于每个可执行程序选择支持的文件类型有所不同,本实施例中选择支持的文件类型即表示能处理的文件类型,其文件类型本身并不包括任何标识信息。\n[0181] 2.选择要保护的数据文件和要使用的加密方案,加密数据文件并向数据文件中写入与可执行程序写入的相同的标识信息:“0x11,0x22,0x33,0x44,0x55,0x66,0x77,0x88,\n0x99,0xaa,0xbb,0xcc,0xdd,0xee,0xff”。\n[0182] 3.将加壳后的数据文件和加密后的数据文件写入U盘,写入时保持原文件名;\n[0183] 4.将设置好的U盘与主机通过USB接口连接;\n[0184] 5.使用者打开U盘,双击或键盘Enter键打开加壳后的可执行程序NOTEPAD.EXE[0185] 6.通过可执行程序的选择功能选择要处理的数据文件,可以选择U盘内部的数据文件(包括通过写入设备写入的和直接拷贝进U盘的),也可以选择主机上的数据文件,本实施例中假定选择的是U盘中的a.txt;\n[0186] 7. 可执行程序判断加载的数据文件是否为支持处理的文件类型,如果是,执行步骤8,否则,提示用于该文件类型与可执行程序不匹配;\n[0187] 8. 可执行程序判断数据文件是否具有与可执行程序内部存储的一致的标识信息,本实施例中,选择的数据文件为a.txt,a.txt的文件头中和可执行程序NOTEPAD.EXE中存储了相同的标识信息:“0x11,0x22,0x33,0x44,0x55,0x66,0x77,0x88,0x99,0xaa,0xbb,\n0xcc,0xdd,0xee,0xff” ;\n[0188] 9. 可执行程序解密数据文件a.txt;\n[0189] 10.可执行程序NOTEPAD.EXE打开解密后的a.txt文件。\n[0190] 本实施例提供的方法为只有一个标识信息,向所有通过写入设备写入U盘的数据文件和可执行程序中均写入这唯一标识信息,使用时,每个可执行程序会判断当前加载的数据文件是否为可支持的文件类型,如果是则检查是否存在一致的标识,如果是,则解密后打开,如果不是则直接打开。\n[0191] 以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换以及改进等,均应包含在本发明的保护范围之内。