CN114297715B - 文件加密方法、文件处理方法、装置及电子设备 - Google Patents
文件加密方法、文件处理方法、装置及电子设备 Download PDFInfo
- Publication number
- CN114297715B CN114297715B CN202111658369.8A CN202111658369A CN114297715B CN 114297715 B CN114297715 B CN 114297715B CN 202111658369 A CN202111658369 A CN 202111658369A CN 114297715 B CN114297715 B CN 114297715B
- Authority
- CN
- China
- Prior art keywords
- file
- specific software
- password
- software
- encryption
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Landscapes
- Storage Device Security (AREA)
Abstract
本申请公开了一种文件加密方法、文件处理方法、装置及电子设备,所述文件加密方法应用于第一电子设备,包括:从加密锁获取密码,所述加密锁与所述第一电子设备通信连接;确定待加密文件,所述待加密文件与特定软件关联;利用所述密码对所述待加密文件加密,获得对应的密文文件;其中,所述特定软件中被预先注入有解密模块,所述解密模块能够在所述特定软件所调用的预设接口被拦截的情况下,利用所述加密锁中的密码解密所述密文文件;在解密后所述预设接口的调用被放行。本申请结合加密锁进行加密,密文文件和加密锁是分开进行传送的,保证了文件的安全性,且密文文件可以直接通过特定软件中的解密模块自动进行解密,用户体验好。
Description
技术领域
本申请涉及加密技术领域,特别涉及一种文件加密方法、文件处理方法、装置及电子设备。
背景技术
随着网络技术的不断发展,计算机、手机等电子设备已经广泛普及,给人们的工作带来了诸多便利,例如,文件的传递也会格外方便。
针对某些技术要求较高的行业,专业软件开发商开发了特定行业软件,例如视觉检测行业的硬件控制软件,将该特定行业软件销售给下游集成商。集成商拿到软件后利用对软件的熟悉程度,生成了特定的解决方案文档。之后集成商会将解决方案文档销售给使用同款软件但无专业知识进行调校软件的最终用户。由此,集成商需要对解决方案文档进行保护,同时要实现在一定范围内进行共享的目的,以使一定范围外的其他人不会获取该解决方案文档的内容。
现有技术中存在仅利用软件对通用文件进行加密的方式,根据目前这种加密方式的加密逻辑,通常会将密钥保存在加密后的文件中,如果恶意人员通过技术手段获取密钥,有可能导致加密文件被破解,给用户造成严重的损失,因而无法起到良好的保护作用。
发明内容
有鉴于现有技术中存在的上述问题,本申请提供了一种文件加密方法、文件处理方法、装置及电子设备,本申请实施例采用的技术方案如下:
一方面,本申请提供了一种文件加密方法,应用于第一电子设备,所述方法包括:
从加密锁获取密码,所述加密锁与所述第一电子设备通信连接;
确定待加密文件,所述待加密文件与特定软件关联;
利用所述密码对所述待加密文件加密,获得对应的密文文件;
其中,所述特定软件中被预先注入有解密模块,所述解密模块能够在所述特定软件所调用的预设接口被拦截的情况下,利用所述加密锁中的密码解密所述密文文件;在解密后所述预设接口的调用被放行。
在一些实施例中,所述加密锁中还存储有所述特定软件的授权信息,所述密码被存储在所述授权信息的ID对应的数据区域中。
在一些实施例中,所述密码由所述待加密文件的文件作者设置,所述解密模块由所述特定软件的开发者注入在所述特定软件中,所述文件作者与所述特定软件的开发者不相同。
另一方面,本申请实施例还提供了一种文件处理方法,其应用于第二电子设备,包括:
响应于对与特定软件关联文件的操作指令,拦截所述特定软件所调用的第一接口,所述第一接口为执行所述操作指令所需调用的接口;
在所述文件为密文文件的情况下,通过被预先注入在所述特定软件中的解密模块,利用密码对所述密文文件解密,获得解密后的文件,其中,所述密码来自与所述第二电子设备通信连接的加密锁;
放行对所述第一接口的调用,以对所述解密后的文件执行所述操作指令对应的操作。
在一些实施例中,所述解密模块由所述特定软件的开发者注入在所述特定软件中;所述密文文件由文件作者利用所述加密锁中的密码加密得到;所述特定软件的开发者与所述文件作者不相同。
在一些实施例中,所述文件处理方法还包括:
通过被预先注入在所述特定软件中的监控模块,监控所述特定软件所调用的预设接口,所述预设接口包括所述第一接口;其中,所述监控模块对应的调用指令被注入在所述特定软件的程序入口点处;所述解密模块能够由所述监控模块触发。
在一些实施例中,所述加密锁中还存储有所述特定软件的授权信息,所述密码被存储在所述授权信息的ID对应的数据区域中。
本申请实施例还提供了一种文件加密装置,包括:
获取模块,配置为从加密锁获取密码,所述加密锁与所述第一电子设备通信连接;
加密模块,配置为确定待加密文件,所述待加密文件与特定软件关联;以及,利用所述密码对所述待加密文件加密,获得对应的密文文件;
其中,所述特定软件中被预先注入有解密模块,所述解密模块能够在所述特定软件所调用的预设接口被拦截的情况下,利用所述加密锁中的密码解密所述密文文件;在解密后所述预设接口的调用被放行。
本申请实施例还提供了一种文件处理装置,包括:
监控模块,配置为响应于对与特定软件关联文件的操作指令,拦截所述特定软件所调用的第一接口,所述第一接口为执行所述操作指令所需调用的接口;以及,放行对所述第一接口的调用,以对所述解密后的文件执行所述操作指令对应的操作;
解密模块,配置为在所述文件为密文文件的情况下,利用密码对所述密文文件解密,获得解密后的文件,其中,所述密码来自与所述第二电子设备通信连接的加密锁。
本申请实施例还提供了一种电子设备,至少包括存储器和处理器,所述存储器上存储有程序,其特征在于,所述处理器在执行所述存储器上的程序时,实现如上任意实施例提供的文件加密方法的步骤;或者,实现如上任意实施例提供的文件处理方法的步骤。
本申请实施例还提供了一种计算机可读存储介质,计算机可读存储介质中存储有计算机可执行指令,在执行计算机可读存储介质中的计算机可执行指令时实现如上任意实施例提供的文件加密方法的步骤;或者,实现如上任意实施例提供的文件处理方法的步骤。
本申请实施例中,结合加密锁对特定软件关联的文件进行加密,通过在特定软件中注入解密模块,使得加密后生成的密文文件可以通过特定软件进行解密后使用。本申请实施例结合加密锁的使用,密文文件和加密锁是分开进行传送的,保证了文件的安全性,且密文文件可以直接通过特定软件中的解密模块自动进行解密后查看,无需用户额外下载支持解密的应用程序进行解密操作,用户体验好。
附图说明
图1为本申请实施例的交互示意图;
图2为本申请实施例的文件加密方法的流程示意图;
图3为本申请实施例的文件处理方法的流程示意图;
图4为本申请实施例的文件加密装置的结构示意图;
图5为本申请实施例的文件处理装置的结构示意图;
图6为本申请实施例的电子设备的结构示意图。
具体实施方式
此处参考附图描述本申请的各种方案以及特征。
应理解的是,可以对此处申请的实施例做出各种修改。因此,上述说明书不应该视为限制,而仅是作为实施例的范例。本领域的技术人员将想到在本申请的范围和精神内的其他修改。
包含在说明书中并构成说明书的一部分的附图示出了本申请的实施例,并且与上面给出的对本申请的大致描述以及下面给出的对实施例的详细描述一起用于解释本申请的原理。
通过下面参照附图对给定为非限制性实例的实施例的可选形式的描述,本申请的这些和其它特性将会变得显而易见。
还应当理解,尽管已经参照一些具体实例对本申请进行了描述,但本领域技术人员能够确定地实现本申请的很多其它等效形式。
当结合附图时,鉴于以下详细说明,本申请的上述和其他方面、特征和优势将变得更为显而易见。
此后参照附图描述本申请的具体实施例;然而,应当理解,所申请的实施例仅仅是本申请的实例,其可采用多种方式实施。熟知和/或重复的功能和结构并未详细描述以避免不必要或多余的细节使得本申请模糊不清。因此,本文所申请的具体的结构性和功能性细节并非意在限定,而是仅仅作为权利要求的基础和代表性基础用于教导本领域技术人员以实质上任意合适的详细结构多样地使用本申请。
本说明书可使用词组“在一种实施例中”、“在另一个实施例中”、“在又一实施例中”或“在其他实施例中”,其均可指代根据本申请的相同或不同实施例中的一个或多个。
在实现本申请所提出的发明构思的过程中,发明人发现目前采用加密软件对通用文件(例如word、pdf、图片等)进行加密时,加密过程中所使用的密钥通常会存储于加密软件或加密后的文件中。若恶意人员通过技术手段从加密后的文件中获取到密钥时,有可能破解加密文件,获取文件中的重要信息。
此外,针对本申请实施例中所涉及的与特定行业软件关联的文件,用户需打开加密后的文件查看其中的内容时,需先下载支持解密的应用软件对加密文件进行解密,再利用特定行业软件打开文件后才能进行查看,操作比较繁琐,用户体验不好。
为此,本申请实施例的文件加密方法中,通过第一电子设备与加密锁通信连接,从加密锁获取密码,利用该密码对与特定软件关联的待加密文件进行加密,生成密文文件,并且特定软件中预先注入有解密模块,以方便用户进行通过特定软件打开密文文件时,启动解密模块对文件进行解密,从而能够对文件的内容进行查看。
本申请实施例中结合加密锁对文件进行加密,密文文件和加密锁可以分开进行传送,无需将密钥和密文文件关联存储,因而,即使第三方获取到密文文件,但是无法获取到解密用的密钥,也就无法破解密文文件,从而保证了文件的安全性。而且,本申请实施例的密文文件可以直接通过特定软件中的解密模块自动进行解密,无需用户额外下载支持解密的应用程序进行解密操作,用户体验好。此外,本申请实施例的方式可以有效防止特定软件关联的文件在传播时容易发生的文件作者的权益受损的问题。从某一个角度来看,这也可以被看作是专业软件开发商为下游集成商提供的一项增值服务。这可以让集成商通过解决方案文档的加密获益,也可以促进集成商对特定专业软件的销售,进而使得专业软件开发商也能够从中获益。
下面对本申请涉及的技术术语进行解释。
特定专业软件,主要是指技术要求较高的特定行业、专业等所研发出的软件,例如视觉检测行业使用的硬件控制软件,建筑行业使用的建筑设计软件、计价软件或算量软件,机械行业使用的机械设计软件、3D模型设计软件或CAD软件,等等。
专业软件开发商,主要是指针对技术要求较高的行业、专业等所需的特定专业软件进行研发的个人、组织或公司。
集成商,主要是指采购特定专业软件用于自己的产品中,与自己的产品整合和扩展,研发新功能的个人、组织或公司。例如,视觉行业很多是以软件+硬件的方式销售产品,此时下游的集成商即向上游的专业软件开发商和硬件厂商采购产品的主体。集成商一般也具有相关的行业专业知识。
解决方案文档,由集成商操作特定专业软件后针对某些需求而生成的项目文件。该项目文件可以是集成商依据自己的专业知识对软件进行调效、优化参数、使用技巧或在软件的可定制范围内增添功能等而生成的文件。项目文档也可以描述某个项目的实现。该项目文件可以被设置为需要至少通过相应的特定专业软件才能打开进行查看和使用,例如由CAD软件生成的dwg格式文件。当然,该项目文件也有可能不需要通过特定专业软件才能打开,而仅仅是其内容等其他要素与特定专业软件想关联。应理解,对于不同的专业软件,其关联的解决方案文档内存储的内容与格式可以不相同,例如有的可能是二进制数据,也有的可能是纯文本文件或者是一种用公式计算生成的图像等。
最终用户,可为个人或公司等,需向集成商购买解决方案文档,通过特定专业软件打开解决方案文档进行查看、编辑等操作。
图1示出了本申请实施例的一种示例性的交互示意图。参见图1所示,专用软件开发商研发出特定行业软件后,销售给集成商和最终用户。集成商利用特定行业软件生成解决方案文档后,会将解决方案文档销售给使用同款软件但的最终用户。通常,集成商为了保护自己的利益不受损害,会对解决方案文档进行加密处理后再销售,同时需要保证能够让最终用户通过特定专业软件正常打开已加密的文档。可以看出,特定行业软件是由软件开发商进行控制授权的,同时解决方案文档是由集成商进行控制授权的,因此,软件开发商进行研发时需考虑才能够让最终用户通过特定专业软件正常打开已加密的文档。
本申请实施例中,第一电子设备和第二电子设备可以包括但不限于手机、平板电脑、计算机等终端设备,第一电子设备和第二电子设备的形式或功能可以相同或不同,本申请这里不做限定。
下面对本申请实施例的技术方案详细进行说明。
图2示出了本申请的文件加密方法的流程示意图。如图2中所示,本申请的文件加密方法,通过第一电子设备执行。这里的第一电子设备可以是集成商所使用的任一个电子设备。所述方法包括如下步骤S110-S130:
S110,从加密锁获取密码,所述加密锁与所述第一电子设备通信连接。
本申请实施例中,加密锁可以是硬件加密锁,软件加密锁或云锁等等,对此不作限定。本步骤中,用户(例如集成商)可以根据需要和实际情况选取适用的加密锁,选取加密锁后,用户可以在加密锁中设置密码,以便在后续用于对待加密文件加密。应理解,不同的待加密文件对应的密码可以相同,也可以不同,本申请对此不作限定。
还应理解,在一些实现方式中,加密锁可以是由软件开发商所选取并交付给集成商的。软件开发商在对特定软件进行授权控制的时候也可能需要使用到加密锁,因此其可以在选取合适的加密锁之后将加密锁交付给集成商,集成商可以再使用该加密锁来设置密码。也就是说,在这种情况下,软件开发商对特定软件的授权控制,以及集成商对解决方案文档的控制,可以共用同一个加密锁来实现。当然,在另一些实现方式中,二者也可以使用不同的加密锁。这样,在最终用户想要查看解决方案文档的时候,就需要连接这两个不同的加密锁才能够正常查看。
通过第一电子设备与加密锁进行通信连接,获取密码。示例性的,用户选用硬件加密锁时,将硬件加密锁通过相应的接口与第一电子设备连接。然后通过第一电子设备上的相应加密软件与硬件加密锁进行通信,获取硬件加密锁中的密码。
S120,确定待加密文件,所述待加密文件与特定软件关联。
本申请实施例中,特定软件可以是前述的特定专业软件以及其他可能会具有关联的解决方案文档的软件。待加密文件可以包括由用户通过操作特定行业软件生成的解决方案文档。示例性的,用户(例如集成商)购买了特定行业软件后,利用对特定行业软件的熟悉程度和所具有的行业方面的专业知识对软件进行调校、优化参数或在软件的可定制范围内增添一些功能,生成相应地项目文件,由此生成解决方案文档。
用户通过第一电子设备确定待加密文件,包括根据用户的实际需要和选择,从本地保存的多个文件中进行选择,从而确定出用户需进行加密的文件,作为待加密文件,以便后续进行加密操作。
S130,利用所述密码对所述待加密文件加密,获得对应的密文文件。
本申请实施例中,密文文件需与加密前一样,也能通过特定软件打开。待加密文件在加密过程中,格式、类型等可以与被加密前保持相同,不发生改变,也可以发生改变,只要在解密的时候电子设备(例如后续的第二电子设备)能够识别出加密后的文件是与特定软件关联的即可。
本步骤旨在通过获取的密码对待加密文件进行加密,以对待加密文件进行保护。在一些具体实施中,用户通过第一电子设备获取密码锁的密码后,通过加密软件利用密码通过预设加密算法对待加密文件加密,生成密文文件后保存。预设加密算法可以包括例如AES算法、RC4算法等,本申请这里并不做限定。在一些实际的应用中,加密软件中可以根据实际情况设置一种或多种算法,以供加密过程进行使用。
示例性的,从加密锁获取密码后,用户将确定的待加密文件导入至加密软件中,再利用加密软件的预设加密算法采用该密码对待加密文件进行加密处理,生成对应的加密文件。在一些具体的实施中,加密软件对待加密文件进行加密处理前,会先查找文件中是否带有已加密标记,以判断该文件是否已加密。若待加密文件带有已加密标记,则确定该文件已被加密,此时加密软件不会对该文件进行加密处理,以避免文件被重复加密,导致用户无法通过特定软件打开进行查看。若未从待加密文件中找到已加密标记,则该文件未被加密,此时,加密软件利用密码通过预设加密算法对该文件进行加密处理,最后生成密文文件进行保存。已加密标记是加密软件在对文件进行加密处理的过程中,在文件的固定位置添加的一种标记信息,用于标记文件一些加密信息。因此,可以理解,从文件中查找到已加密标记,则可以判断该文件已被加密处理过。
在另一些具体的实施中,包括多个待加密文件时,加密软件依次对每个待加密文件是否已加密进行判断,再根据判断结果进行处理。若判断结果为未加密,则加密软件利用密码通过预设算法对文件进行加密处理,生成密文文件保存。若判断为已加密,则跳过该文件,不进行加密处理,依次判断下一个文件,直至所有文件加密完成,生成多个待加密文件对应的密文文件,保存起来。
本申请实施例中,特定软件中被预先注入有解密模块和监控模块。所述监控模块能够拦截所述特定软件所调用的预设接口。这里的预设接口示例性地可以是文件读取接口/函数、文件写入接口/函数等。这样,当监控到存在预设接口被调用的情况时,可以先拦截该调用,然后转向去执行另一个提前设置好的流程/功能,例如解密模块所负责的解密流程/功能。解密模块可以利用加密锁中的密码来解密密文文件。在解密流程/功能执行完毕之后放行前述被拦截的调用。也就是说,监控模块还能够在利用所述加密锁中的密码解密所述密文文件后放行对所述预设接口的调用。应理解,执行解密流程/功能的结果可以被返回给前述被拦截的调用。示例性地,上述监控模块可以通过钩子程序hook来实现。
特定软件中注入有解密模块,用户通过特定软件打开密文文件时,通过解密模块对密文文件进行解密,从而用户可以对文件进行查看。
应理解,在实际应用中,上述解密模块和监控模块可以被集成在一起,例如形成一个解密插件,也可以是独立的模块。示例性地,上述解密插件可以是一个动态库文件。
在一些具体的实施中,在特定软件中注入有解密插件,可被实施为以下步骤A1-A4:
A1,将解密插件放入加壳工具(例如Virboxprotector)的指定目录中;
A2,使用加壳工具打开特定软件的主程序。
A3,在加壳工具中切换到加密选项标签页,打开该页面上的解密功能按钮;
A4,点击加壳工具中的保护选中项目按钮,使得解密插件被注入到特定软件的主程序中。
上述步骤可以由特定软件的开发者来执行。
在一些实现方式中,加壳工具打开特定软件的主程序后,会分析其可执行程序的静态文件结构,识别该可执行文件的程序入口点、导入表等信息,进而在不不编写代码的情况下修改可执行程序的静态文件结构和执行逻辑。
程序入口点一般是指操作系统预定的一个函数。可执行程序一般从程序入口点开始执行自己的代码指令。
在特定软件中注入解密插件后,特定软件的主程序入口点包含调用解密插件的指令。特定软件启动时,被注入的解密插件自动加载。这样,当通过特定软件打开密文文件时,可以自动调用解密插件进行解密,无需用户做其他额外的操作,对用户更加友好。
在一些实施例中,可以将解密插件中的监控模块对应的调用指令注入在特定软件的主程序的程序入口点处。采用上述的实现方式,可以更好地实现对密文文件的自动监控和解密。当特定软件启动时,监控模块自动加载,对特定软件调用的预设接口进行监控。示例性地,监控模块对预设接口进行hook操作,该预设接口可以是windows系统的SDK中指定的API接口,特定软件启动后处理文件时会调用该API接口。当监控模块监控到某个预设接口被调用时,触发解密模块。
导入表,一般是指操作系统对于可执行程序规定的静态文件结构中的一段数据。该段数据可以记录该可执行程序除程序文件本身中已定义的函数实现外,调用的其它第三方函数所存在的文件位置。操作系统在加载可执行程序时可以识别导入表中的文件,并以动态库的格式将其加载到内存中,识别这些动态库中的函数。将可执行程序依赖的、但未在程序本身定义的第三方函数,与第三方函数调用指令进行关联,使得程序在进入程序入口点开始执行代码时能够跳转到这些第三方函数地址执行代码指令。
在一些实施例中,导入表可以被修改,例如将上述解密插件的调用指令或者将上述监控模块的调用指令写入到特定程序的主程序的导入表中,从而使得软件在启动时可以自动加载该解密插件或者监控模块。
由此,特定软件打开文件时,所调用的预设接口被hook拦截下来,从而触发解密模块的解密功能。解密模块启用解密功能的解密逻辑,先查找文件中是否带有已加密标记,以对文件是否加密进行判断。若文件中带有已加密标记,则该文件被加密处理过,此时,解密模块会通过与加密锁通过获取密码,对文件进行解密后放行预设接口,同时将解密后的数据按照预设接口的要求返回给特定软件的主程序。若文件中不存在已加密标记,则该文件未被加密处理过,此时,解密模块直接放行预设接口,不做处理,以使特定软件的主程序直接对文件进行操作。由此,本申请实施例可以实现密文文件通过特定软件直接打开进行查看的效果,用户无需额外的操作和下载文件,提升用户体验。
在一些实施例中,所述加密锁中还存储有所述特定软件的授权信息,所述密码被存储在所述授权信息的ID对应的数据区域中。本实施例旨在使软件开发商对特定软件的授权控制以及集成商对解决方案文档的控制,可以共用同一个加密锁来实现。
本申请中,软件开发商对特定软件的授权可以通过授权信息来描述。每一个不同的授权信息具有唯一的ID,即授权信息的ID,也称为授权ID。授权ID可以用于标记、索引一串授权信息数据。示例性地,授权ID可以是一个10位大小以内的数字。专业软件开发商可以为某个特定的合法软件用户颁发授权信息,这些授权信息可以被存储在加密锁中。一个加密锁中可以包括一个或多个数据区域/存储空间,例如64字节或者16字节的存储空间等。前述的授权信息可以被存储在与该授权信息的ID关联的数据区域中。这样,软件用户(例如最终用户或者集成商)就基于该加密锁中的授权信息,在自己的电子设备上正常使用该特定专业软件。
本实施例中,授权信息一般由专业软件开发商进行设置。在一些特殊情况下,在集成商获得了专业软件开发商的授权之后,集成商也可能为最终用户设置授权信息。
授权信息具体可以包括对特定专业软件的授权使用时长或期限,以根据实际情况控制最终用户或集成商使用专业软件开发商的期限。授权信息还可以包括针对特定软件中的功能模块允许使用的信息,以授权和控制用户对功能模块是否可以使用以及使用的期限,特定软件的功能模块例如解密模块、编辑模块、保存模块等等。示例性的,在用户使用解密模块的解密功能对密文文件解密时,禁止用户使用保存模块的保存功能或另存为功能,以避免对该密文文件的修改,或另存为时将密文文件转为未加密的文件后进行传播。示例性的,根据授权信息中设置的使用时长,或具体的时间期限,在该使用时长内或时间期限内允许用户使用相关模块。
本实施例中,集成商将加密锁的密码存储在授权信息的ID对应的数据区域中。这样,该ID对应的数据区域内存储了特定专业软件的授权信息以及密码。当最终用户利用加密锁来打开前述被加密的解决方案文档的时候,其只需要连接一把加密锁即可。在解密模块被允许使用的期限内,特定软件打开密文文件时才可以从加密锁获取到对应的密码,以对密文文件进行解密。
在一些实施例中,所述密码由所述待加密文件的文件作者设置,所述解密模块由所述特定软件的开发者注入在所述特定软件中,所述文件作者与所述特定软件的开发者不相同。
加密锁出厂时可以携带有初始密码,例如都设为0000。用户在购买加密锁后进行使用时,为了保证加密锁的安全,可以修改初始密码。
本申请中,生成待加密文件的文件作者与特定软件的开发者可以为同一人。例如,软件开发商研发出特定软件后,在特定软件中注入解密模块,并且利用专业知识生成解决方案文档,将解决方案文档加密后,与注入有解密模块的特定软件一起销售给最终用户。
本实施例中,所述特定软件的开发者研发出特定软件后,将解密模块注入特定软件中,之后将注入解密模块的特定软件销售给下游的集成商和最终用户。集成商操作特定软件生成解决方案文档,并利用加密锁的密码对解决方案文档加密。待加密的文件指集成商所生成的解决方案文档,集成商为待加密文件的作者。集成商结合加密锁对解决方案文档加密时,可以对加密锁的初始密码重新进行设置,根据实际授权情形在加密锁中写入授权信息,以实现对解决方案文档的保护。
集成商将加密锁与第一电子设备进行通信连接,利用第一电子设备上的软件(例如前述加密软件)通过调用SDK的方式从加密锁的授权信息的ID的数据区域中读取密码,软件会检查该密码是否为初始密码,同时集成商在软件的输入界面上输入密码。软件根据检查结果对输入的密码进行处理。如果是初始密码,则接受输入的密码作为新的密码并进行存储。如果不是初始密码,则基于加密锁的密码对输入的密码进行验证,在验证通过后允许集成商写入其他新的密码。在一些情况下,也可以允许集成商在该授权信息的ID的数据区域中写入新的相应的授权信息,对特定软件的功能模块进行授权和控制,以进一步实现对解决方案文档的授权和控制。
本申请实施例还提供了一种文件处理方法,请参见图3所示,所述文件处理方法应用于第二电子设备。这里的第二电子设备可以是最终用户所使用的任一个电子设备。该方法包括如下步骤S210-S230:
S210,响应于对与特定软件关联的文件的操作指令,拦截所述特定软件所调用的第一接口,所述第一接口为执行所述操作指令所需调用的接口;
S220,在所述文件为密文文件的情况下,通过被预先注入在所述特定软件中的解密模块,利用密码对所述密文文件解密,获得解密后的文件,其中,所述密码来自与所述第二电子设备通信连接的加密锁;
S230,放行对所述第一接口的调用,以对所述解密后的文件执行所述操作指令对应的操作。
本申请实施例中,与特定软件关联的文件,可以是被加密的解决方案文档,也可以是未被加密的文档。特定软件、解决方案文档、预先注入在特定软件中的解密模块、加密锁、密码等,可以参考前文的相关描述,此处不再赘述。
本实施例中,第二电子设备通过与加密锁通信连接,通过调用SDK的方式从从加密锁读取密码。特定软件预先注入有解密模块,注入的方式可参考前述实施例的实现方式。响应于对文件的操作,如打开文件时,特定软件响应于文件的打开指令,开始启动,以执行打开文件的指令,此时,需调用打开文件指令所对应的第一接口,以在获取文件的数据信息。
特定软件启动时,监控模块自动加载,拦截第一接口,触发解密模块的解密功能。解密功能的实现过程可以参照前述实施例中的实现方式。在所述文件为密文文件时,解密模块利用加密锁的密码对密文文件解密,获得解密后的文件数据,将解密后的文件数据按照第一接口的要求返回特定软件的主程序。
解密模块完成解密处理过程后,监控模块放行第一接口,特定软件通过第一接口调用相应地数据信息,以执行操作指令对应的操作,例如,打开文件,将文件的数据内容呈现在软件的界面上。
本申请中,最终用户购买文件即解决方案文档后,文件的销售者,例如集成商会将加密的解决方案文档和存储有密码的加密锁分别发送给最终用户。集成商使用硬件加密锁进行加密时,可将该硬件加密锁通过快递发送给最终用户,并将加密后的解决方案文档通过网络传送给最终用户。集成商使用软件加密锁或云锁进行加密时,可将该软件加密锁或云锁与加密后的解决方案文档分别通过网络传送给最终用户,以避免软件加密锁或云锁与解决方案文档之间产生关联,使得恶意人员在获取加密后的解决方案文档一并获得密码,导致解决方案文档的内容被泄露。
在一些实施例中,所述解密模块由所述特定软件的开发者注入在所述特定软件中;所述密文文件由文件作者利用所述加密锁中的密码加密得到;所述特定软件的开发者与所述文件作者不相。
本申请中,密文文件的文件作者与特定软件的开发者可以为同一人。例如,软件开发商研发出特定软件后,在特定软件中注入解密模块,可以并且利用专业知识生成解决方案文档,将解决方案文档加密后生成密文文件,与注入有解密模块的特定软件一起销售给最终用户。
本实施例中,所述特定软件的开发者研发出特定软件后,将解密模块注入特定软件中,之后将注入解密模块的特定软件销售给下游的集成商和最终用户。集成商操作特定软件生成解决方案文档,并利用加密锁的密码对解决方案文档加密,生成密文文件。集成商为密文文件的作者。集成商结合加密锁对解决方案文档加密时,可以对加密锁的初始密码重新进行设置,根据实际授权情形在加密锁中写入授权信息,以实现对解决方案文档的保护。
在一些实施例中,为了实现通过特定软件打开密文文件时,可以自动调用解密模块进行解密,特定软件的开发者在特定软件中预先注入有监控模块。监控模块对应的启动指令被注入在所述特定软件的主程序的程序入口点处,特定软件启动时,监控模块自动加载,对特定软件调用的预设接口进行监控。预设接口可以根据特定软件对文档进行相应操作时所需调用的一些接口进行设置,其中包括特定软件响应于文件的操作指令时调用的第一接口。监控模块监控到第一接口被调用时,触发解密模块的解密功能,通过已设定的解密逻辑对文件进行处理。具体处理过程可以参见前述实施例中解密逻辑的实现方式,在此不再赘述。
一些实施例中,所述加密锁中还存储有所述特定软件的授权信息,所述密码被存储在所述授权信息的ID对应的数据区域中。本实施例中,加密锁由密文文件的作者提供,因而加密锁中的数据相应地由密文文件的作者进行设置,具体设置方式可以参照前述文件加密的实施例中的实施方式,在此不再赘述。
本申请实施例还提供了一种文件加密装置10,如图4所示,包括:
获取模块101,配置为从加密锁获取密码,所述加密锁与所述第一电子设备通信连接;
加密模块102,配置为确定待加密文件,所述待加密文件与特定软件关联;以及,利用所述密码对所述待加密文件加密,获得对应的密文文件;
其中,所述特定软件中被预先注入有解密模块,所述解密模块能够在所述特定软件所调用的预设接口被拦截的情况下,利用所述加密锁中的密码解密所述密文文件;在解密后所述预设接口的调用被放行。
本申请实施例中的所述文件加密装置,通过其配置的功能模块能够实现本申请中任意实施例提到的文件加密方法的步骤。因此,本申请实施例提供的文件加密装置的实施可以参见本申请提供的文件加密方法的实施,在此不再赘述。
本申请实施例还提供了一种文件处理装置20,如图5所示,包括:
监控模块201,配置为响应于对与特定软件关联文件的操作指令,拦截所述特定软件所调用的第一接口,所述第一接口为执行所述操作指令所需调用的接口;以及,放行对所述第一接口的调用,以对所述解密后的文件执行所述操作指令对应的操作;
解密模块202,配置为在所述文件为密文文件的情况下,通过被预先注入在所述特定软件中的解密模块,利用密码对所述密文文件解密,获得解密后的文件,其中,所述密码来自与所述第二电子设备通信连接的加密锁。
本申请实施例中的所述文件处理装置,通过其配置的功能模块能够实现本申请中任意实施例提到的文件处理方法的步骤。因此,本申请实施例提供的文件处理装置的实施可以参见本申请提供的文件处理方法的实施,在此不再赘述。
另一方面,本申请实施例提供了一种电子设备,至少包括存储器901、处理器902和总线(未图示),其中,该电子设备的结构示意图可以如图6所示,存储器901存储有处理器902可执行的机器可读指令,当电子设备运行时,处理器902与存储器901之间通过总线通信,所述机器可读指令被所述处理器执行时实现如上任意实施例提供的文件加密方法的步骤;或者,实现如上任意实施例提供的文件处理方法的步骤。
由于本申请实施例所介绍的电子设备,为设置有实施本申请实施例所公开的文件加密方法、或文件处理方法存储器的电子设备,故而基于本申请实施例所介绍的文件加密方法、或文件处理方法,本领域所属技术人员能够了解本申请实施例所介绍的电子设备的结构及变形,故而在此不再赘述。
本申请实施例还提供了一种计算机可读存储介质,计算机可读存储介质中存储有计算机可执行指令,在执行计算机可读存储介质中的计算机可执行指令时实现如上任意实施例提供的文件加密方法的步骤;或者,实现如上任意实施例提供的文件处理方法的步骤。
本领域技术人员应明白,本申请的实施例可提供为方法、电子设备、计算机可读存储介质或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质上实施的计算机程序产品的形式。当通过软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。
上述处理器可以是通用处理器、数字信号处理器、专用集成电路(application-specific integrated circuit,ASIC),可编程逻辑器件(programmable logic device,PLD)或其组合。上述PLD可以是复杂可编程逻辑器件(complex programmable logicdevice,CPLD),现场可编程逻辑门阵列(field-programmable gate array,FPGA),通用阵列逻辑(generic array logic,简称GAL)或其任意组合。通用处理器可以是微处理器或者任何常规的处理器等。
上述存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。存储器是计算机可读介质的示例。
上述可读存储介质可为磁碟、光盘、DVD、USB、只读存储记忆体(ROM)或随机存储记忆体(RAM)等,本申请对具体的存储介质形式不作限定。
以上实施例仅为本申请的示例性实施例,不用于限制本申请,本申请的保护范围由权利要求书限定。本领域技术人员可以在本申请的实质和保护范围内,对本申请做出各种修改或等同替换,这种修改或等同替换也应视为落在本申请的保护范围内。
Claims (9)
1.一种文件加密方法,其特征在于,应用于第一电子设备,所述方法包括:
从加密锁获取集成商设置的密码,所述加密锁与所述第一电子设备通信连接;
确定待加密文件,所述待加密文件是由集成商生成的与特定软件关联的解决方案文档;
利用所述密码对所述待加密文件加密,获得对应的密文文件;
其中,所述特定软件中被所述特定软件的开发商预先注入有解密模块,所述解密模块能够在所述特定软件所调用的预设接口被拦截的情况下,利用所述加密锁中的密码解密所述密文文件;在解密后所述预设接口的调用被放行;
所述加密锁中还存储有所述特定软件的开发商颁发的所述特定软件的授权信息,所述授权信息和所述密码都被存储在所述授权信息的ID对应的数据区域中。
2.根据权利要求1所述的方法,其特征在于,所述密码由所述待加密文件的文件作者设置,所述解密模块由所述特定软件的开发者注入在所述特定软件中,所述文件作者与所述特定软件的开发者不相同。
3.一种文件处理方法,其特征在于,应用于第二电子设备,包括:
在获取授权信息的情况下,响应于对与特定软件关联的解决方案文档的操作指令,拦截所述特定软件所调用的第一接口,所述第一接口为执行所述操作指令所需调用的接口;
在所述文件为密文文件的情况下,通过被预先注入在所述特定软件中的解密模块,利用密码对所述密文文件解密,获得解密后的文件,其中,所述密码和所述授权信息来自与所述第二电子设备通信连接的加密锁,所述授权信息和所述密码都被存储在所述授权信息的ID对应的数据区域中;
放行对所述第一接口的调用,以对所述解密后的文件执行所述操作指令对应的操作。
4.根据权利要求3所述的方法,其特征在于,所述解密模块由所述特定软件的开发者注入在所述特定软件中;所述密文文件由文件作者利用所述加密锁中的密码加密得到;所述特定软件的开发者与所述文件作者不相同。
5.根据权利要求3所述的方法,其特征在于,还包括:
通过被预先注入在所述特定软件中的监控模块,监控所述特定软件所调用的预设接口,所述预设接口包括所述第一接口;其中,所述监控模块对应的调用指令被注入在所述特定软件的程序入口点处;所述解密模块能够由所述监控模块触发。
6.一种文件加密装置,其特征在于,包括:
获取模块,配置为从加密锁获取集成商设置的密码,所述加密锁与第一电子设备通信连接;
加密模块,配置为确定待加密文件,所述待加密文件是由集成商生成的与特定软件关联的解决方案文档;以及,利用所述密码对所述待加密文件加密,获得对应的密文文件;
其中,所述特定软件中被所述特定软件的开发商预先注入有解密模块,所述解密模块能够在所述特定软件所调用的预设接口被拦截的情况下,利用所述加密锁中的密码解密所述密文文件;在解密后所述预设接口的调用被放行;
所述加密锁中还存储有所述特定软件的开发商颁发的所述特定软件的授权信息,所述授权信息和所述密码都被存储在所述授权信息的ID对应的数据区域中。
7.一种文件处理装置,其特征在于,包括:
监控模块,配置为在获取授权信息的情况下,响应于对与特定软件关联的解决方案文档的操作指令,拦截所述特定软件所调用的第一接口,所述第一接口为执行所述操作指令所需调用的接口;以及,放行对所述第一接口的调用,以对解密后的文件执行所述操作指令对应的操作;
解密模块,配置为在所述文件为密文文件的情况下,利用密码对所述密文文件解密,获得解密后的文件,其中,所述密码和所述授权信息来自与第二电子设备通信连接的加密锁,所述授权信息和所述密码都被存储在所述授权信息的ID对应的数据区域中。
8.一种电子设备,至少包括存储器和处理器,所述存储器上存储有程序,其特征在于,所述处理器在执行所述存储器上的程序时实现权利要求1-2中任一项所述的方法,或权利要求 3-5中任一项所述的方法。
9.一种计算机可读存储介质,存储有计算机程序,其特征在于,所述计算机程序被处理器执行时能够实现权利要求1-2中任一项所述的方法,或者,实现权利要求3-5中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111658369.8A CN114297715B (zh) | 2021-12-31 | 2021-12-31 | 文件加密方法、文件处理方法、装置及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111658369.8A CN114297715B (zh) | 2021-12-31 | 2021-12-31 | 文件加密方法、文件处理方法、装置及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114297715A CN114297715A (zh) | 2022-04-08 |
CN114297715B true CN114297715B (zh) | 2023-01-13 |
Family
ID=80972635
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111658369.8A Active CN114297715B (zh) | 2021-12-31 | 2021-12-31 | 文件加密方法、文件处理方法、装置及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114297715B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1786867A (zh) * | 2005-09-22 | 2006-06-14 | 深圳市江波龙电子有限公司 | 文档加密、解密的方法及其安全管理存储设备和系统方法 |
CN104392153A (zh) * | 2014-12-10 | 2015-03-04 | 北京深思数盾科技有限公司 | 一种软件保护方法及系统 |
WO2021129094A1 (zh) * | 2019-12-24 | 2021-07-01 | 飞天诚信科技股份有限公司 | 一种加密u盘系统及其实现方法 |
CN113132099A (zh) * | 2021-04-06 | 2021-07-16 | 鼎铉商用密码测评技术(深圳)有限公司 | 一种基于硬件密码设备的传输文件加解密方法及装置 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103617399B (zh) * | 2013-11-06 | 2018-04-27 | 北京深思数盾科技股份有限公司 | 一种数据文件保护方法及装置 |
WO2015135579A1 (de) * | 2014-03-12 | 2015-09-17 | Topas Ag | Schlüsselvorrichtung sowie ver- und entschlüsselungsverfahren |
CN110502909B (zh) * | 2019-08-06 | 2021-06-01 | 北京北信源软件股份有限公司 | 一种文件加密方法及装置、一种文件解密方法及装置 |
-
2021
- 2021-12-31 CN CN202111658369.8A patent/CN114297715B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1786867A (zh) * | 2005-09-22 | 2006-06-14 | 深圳市江波龙电子有限公司 | 文档加密、解密的方法及其安全管理存储设备和系统方法 |
CN104392153A (zh) * | 2014-12-10 | 2015-03-04 | 北京深思数盾科技有限公司 | 一种软件保护方法及系统 |
WO2021129094A1 (zh) * | 2019-12-24 | 2021-07-01 | 飞天诚信科技股份有限公司 | 一种加密u盘系统及其实现方法 |
CN113132099A (zh) * | 2021-04-06 | 2021-07-16 | 鼎铉商用密码测评技术(深圳)有限公司 | 一种基于硬件密码设备的传输文件加解密方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN114297715A (zh) | 2022-04-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112513857A (zh) | 可信执行环境中的个性化密码安全访问控制 | |
CN106980793B (zh) | 基于TrustZone的通用口令存储及读取方法、装置及终端设备 | |
CN103617382A (zh) | 隐私保护方法及其装置 | |
US20090222500A1 (en) | Information storage device and method capable of hiding confidential files | |
CN101529366A (zh) | 可信用户界面对象的标识和可视化 | |
GB2404536A (en) | Protection of data using software wrappers | |
US20170329963A1 (en) | Method for data protection using isolated environment in mobile device | |
KR101625785B1 (ko) | 이동 단말 정보 보안 관리 방법, 장치 및 이동 단말 | |
US20150319147A1 (en) | System and method for file encrypting and decrypting | |
JP4931543B2 (ja) | 情報機器、及びコンピュータプログラム | |
US20150186681A1 (en) | Method of encryption and decryption for shared library in open operating system | |
CN106980797A (zh) | 一种实现文件保护的方法、装置和计算设备 | |
CN104067286A (zh) | 无效托管密钥的检测 | |
US20170187527A1 (en) | Obtaining A Decryption Key From a Mobile Device | |
US9819663B1 (en) | Data protection file system | |
US11379568B2 (en) | Method and system for preventing unauthorized computer processing | |
CN113127844A (zh) | 一种变量访问方法、装置、系统、设备和介质 | |
WO2015154469A1 (zh) | 数据库的操作方法及装置 | |
CN114297715B (zh) | 文件加密方法、文件处理方法、装置及电子设备 | |
US9733852B2 (en) | Encrypted synchronization | |
CN106789051A (zh) | 一种保护文件的方法、装置和计算设备 | |
CN108696355B (zh) | 一种防止用户头像盗用的方法及系统 | |
JP2007188307A (ja) | データファイル監視装置 | |
CN111814137A (zh) | 终端的运维方法、运维系统及存储介质 | |
JP6215468B2 (ja) | プログラム保護装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Address after: 100193 5th floor 510, No. 5 Building, East Yard, No. 10 Wangdong Road, Northwest Haidian District, Beijing Applicant after: Beijing Shendun Technology Co.,Ltd. Address before: 100193 5th floor 510, No. 5 Building, East Yard, No. 10 Wangdong Road, Northwest Haidian District, Beijing Applicant before: BEIJING SENSESHIELD TECHNOLOGY Co.,Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |