CN115883078A - 文件加密方法、文件解密方法、装置、设备及存储介质 - Google Patents
文件加密方法、文件解密方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN115883078A CN115883078A CN202211487294.6A CN202211487294A CN115883078A CN 115883078 A CN115883078 A CN 115883078A CN 202211487294 A CN202211487294 A CN 202211487294A CN 115883078 A CN115883078 A CN 115883078A
- Authority
- CN
- China
- Prior art keywords
- file
- encrypted
- byte code
- target
- data packet
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 95
- 238000004806 packaging method and process Methods 0.000 claims abstract description 18
- 238000012795 verification Methods 0.000 claims description 19
- 238000004590 computer program Methods 0.000 claims description 14
- 238000012545 processing Methods 0.000 claims description 12
- 230000004044 response Effects 0.000 claims description 5
- 238000001514 detection method Methods 0.000 claims description 3
- 238000010586 diagram Methods 0.000 description 20
- 238000004891 communication Methods 0.000 description 10
- 230000008569 process Effects 0.000 description 8
- 238000012856 packing Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 4
- 238000004422 calculation algorithm Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000007781 pre-processing Methods 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Landscapes
- Storage Device Security (AREA)
Abstract
本公开提供了一种文件加密方法、文件解密方法、装置、设备及存储介质,涉及计算机技术领域,尤其涉及安全领域。具体实现方案为:利用密钥对至少一个字节码文件分别进行加密,得到至少一个字节码加密文件;以及将至少一个字节码加密文件打包为数据包;其中,数据包的文件头信息包含至少一个字节码加密文件各自的位置信息。
Description
技术领域
本公开涉及计算机技术领域,尤其涉及安全领域,更具体地,本公开提供了一种文件加密方法、文件加密装置、文件解密方法、文件解密装置、电子设备、存储介质以及计算机程序产品。
背景技术
在一些场景中,云端会向终端下发未经加密的字节码文件(bytecode),终端执行字节码文件,来实现与字节码文件对应的功能。由于字节码文件未进行加密处理,因此字节码文件的存储和传输均存在安全威胁,存在源码泄漏、被篡改的风险,甚至暴露出系统漏洞而被攻击者利用,进而产生更大的安全威胁。
发明内容
本公开提供了一种文件加密方法、文件加密装置、文件解密方法、文件解密装置、电子设备、存储介质以及计算机程序产品。
根据本公开的一方面,提供了一种文件加密方法,包括:利用密钥对至少一个字节码文件分别进行加密,得到至少一个字节码加密文件;以及将至少一个字节码加密文件打包为数据包;其中,数据包的文件头信息包含至少一个字节码加密文件各自的位置信息。
根据本公开的另一方面,提供了一种文件解密方法,包括:获取数据包,数据包包括至少一个字节码加密文件,数据包的文件头信息包含至少一个字节码加密文件各自的位置信息;根据接收到的指令和文件头信息中的位置信息,从数据包中释放与指令相关的目标加密字节码文件;以及对目标加密字节码文件进行解密,得到目标字节码文件。
根据本公开的另一方面,提供了一种文件加密装置,包括:第一加密模块、第一打包模块。第一加密模块用于利用密钥对至少一个字节码文件分别进行加密,得到至少一个字节码加密文件。第一打包模块用于将至少一个字节码加密文件打包为数据包。其中,数据包的文件头信息包含至少一个字节码加密文件各自的位置信息。
根据本公开的另一方面,提供了一种文件解密装置,包括:获取模块、第一释放模块和解密模块。获取模块用于获取数据包,数据包包括至少一个字节码加密文件,数据包的文件头信息包含至少一个字节码加密文件各自的位置信息。第一释放模块用于根据接收到的指令和文件头信息中的位置信息,从数据包中释放与指令相关的目标加密字节码文件。解密模块用于对目标加密字节码文件进行解密,得到目标字节码文件。
根据本公开的另一个方面,提供了一种电子设备,包括:至少一个处理器;以及与至少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行本公开提供的方法。
根据本公开的另一个方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,计算机指令用于使计算机执行本公开提供的方法。
根据本公开的另一个方面,提供了一种计算机程序产品,包括计算机程序,计算机程序在被处理器执行时实现本公开提供的方法。
应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
附图用于更好地理解本方案,不构成对本公开的限定。其中:
图1A是根据本公开实施例的文件加密方法、文件解密方法和装置的应用场景示意图;
图1B是根据本公开实施例的文件加密方法、文件解密方法的示意图;
图2是根据本公开实施例的文件加密方法的示意流程图;
图3是根据本公开实施例的文件加密方法的示意流程图;
图4是根据本公开实施例的文件解密方法的示意流程图;
图5是根据本公开实施例的文件解密方法的示意流程图;
图6A是根据本公开实施例的文件加密方法的示意原理图;
图6B是根据本公开实施例的文件解密方法的示意原理图;
图7是根据本公开实施例的文件加密装置的示意结构框图;
图8是根据本公开实施例的文件解密装置的示意结构框图;以及
图9是用来实施本公开实施例的文件解密方法和/或文件解密方法的电子设备的结构框图。
具体实施方式
以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
图1A是根据本公开实施例的文件加密方法、文件解密方法和装置的应用场景示意图。
需要注意的是,图1A所示仅为可以应用本公开实施例的系统架构的示例,以帮助本领域技术人员理解本公开的技术内容,但并不意味着本公开实施例不可以用于其他设备、系统、环境或场景。
如图1A所示,根据该实施例的系统架构100可以包括终端设备101、102、103,网络104和服务器105。网络104用以在终端设备101、102、103和服务器105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线和/或无线通信链路等等。
用户可以使用终端设备101、102、103通过网络104与服务器105交互,以接收或发送消息等。终端设备101、102、103可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
服务器105可以是提供各种服务的服务器,例如对用户利用终端设备101、102、103所浏览的网站提供支持的后台管理服务器(仅为示例)。后台管理服务器可以对接收到的用户请求等数据进行分析等处理,并将处理结果反馈给终端设备。
图1B是根据本公开实施例的文件加密方法、文件解密方法的示意图。
例如,如图1B所示,可以在服务器105(例如云端)部署源文件,然后经混淆110、加密120、签名130、打包140等处理,得到数据包,然后服务器105将数据包分发至终端设备101。终端设备101经过验签150、解包160、解密170、验证完整性等操作之后,可以得到可信且完整的字节码文件,然后终端设备101可以加载和执行180字节码文件。
需要说明的是,本公开实施例所提供的文件加密方法一般可以由服务器105执行。相应地,本公开实施例所提供的文件加密装置一般可以设置于服务器105中。本公开实施例所提供的文件加密方法也可以由不同于服务器105且能够与终端设备101、102、103和/或服务器105通信的服务器或服务器集群执行。相应地,本公开实施例所提供的文件加密装置也可以设置于不同于服务器105且能够与终端设备101、102、103和/或服务器105通信的服务器或服务器集群中。本公开实施例所提供的文件解密方法一般可以由终端设备101、102、103执行。相应地,本公开实施例所提供的文件解密装置一般可以设置于终端设备101、102、103中。
应该理解,图1A和图1B中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
图2是根据本公开实施例的文件加密方法的示意流程图。
如图2所示,该文件加密方法200可以包括操作S210~操作S240,该文件加密方法200可以由云端执行。
在操作S210,利用密钥对至少一个字节码文件分别进行加密,得到至少一个字节码加密文件。
例如,密钥用于对待加密的文件进行加密处理,从而得到加密文件。密钥可以采用对称加密算法或者非对称加密算法,对称加密算法例如可以是AES(Advanced EncryptionStandard,高级加密标准)。在实际应用中,不同的待加密文件可以采用同一个密钥进行加密,也可以采用不同的密钥进行加密。
例如,待加密的文件可以包括字节码文件,字节码文件是需要下发至终端,以便终端执行的文件。可以通过编程、预处理等操作得到字节码文件,例如,可以利用编程语言编写代码得到源文件,编程语言例如可以是Lua、C++等,然后可以对源文件进行预处理,得到字节码文件,预处理可以包括混淆、预编译等,混淆用于隐藏代码逻辑,提高反编译难度。
例如,待加密的文件还可以包括配置文件,配置文件可以包括字节码文件的执行顺序、执行规则等信息,执行规则例如可以包括字节码文件的执行次数、执行模式(例如循环执行、按预定周期执行等)等。
在操作S220,将至少一个字节码加密文件打包为数据包,其中,数据包的文件头信息包含至少一个字节码加密文件各自的位置信息。
例如,文件头信息可以包括加密文件各自位置信息,加密文件可以包括与字节码文件对应的字节码加密文件,还可以包括与配置文件的配置加密文件。文件头信息中的位置信息指示了加密文件在数据包中的存储位置,存储位置可以包括起始位置和终止位置。
在实际应用中,云端得到数据包之后,还可以向客户端发送数据包。例如,客户端先向云端发送请求,云端接收到请求之后,根据请求向终端发送数据包。又例如,客户端可以与云端建立长链接,云端在数据包发生变更之后,可以向客户端发送更新后的数据包。
本公开实施例对字节码文件进行加密处理,得到数据包,以使获取到该数据包的终端可以根据实际需求对字节码加密文件进行解密,进而执行解密后的字节码文件。因此,能够保护字节码文件,防止字节码文件泄露、被篡改,提高字节码文件的安全性和运行环境的安全性。
此外,该文件加密方法还在文件头信息中存储了字节码加密文件在数据包中的存储位置,相比于未记录各个字节码加密文件的位置信息的技术方案,应用本公开实施例提供的技术方案,终端可以根据位置信息从数据包中解密自身所需要的字节码文件,而无需将全部字节码加密文件进行解密然后遍历查找自身需要的字节码文件,因此能够提高文件处理效率。
图3是根据本公开实施例的文件加密方法的示意流程图。
如图3所示,该文件加密方法300可以包括操作S310~操作S350,该文件加密方法300可以由云端执行。
在操作S310,利用密钥对至少一个待加密文件分别进行加密,得到至少一个加密文件。
例如,操作S310可以参考上文的操作S210。
例如,待加密文件可以包括字节码文件,相应地,加密文件可以包括字节码加密文件。此外,待加密文件还可以包括配置文件,相应地,加密文件可以包括配置加密文件。
在操作S320,对至少一个加密文件各自进行哈希运算,得到至少一个初始摘要信息。
例如,云端对加密文件进行哈希运算,可以得到固定长度的初始摘要信息。例如,初始摘要信息可以包括与字节码加密文件对应的摘要信息和与配置加密文件对应的摘要信息。
例如,可以利用摘要文件存储各个加密文件的初始摘要信息。摘要文件可以用于验证文件的完整性。例如终端在解密的过程中,可以在得到目标字节码文件之后,对解密得到的目标字节码文件进行哈希运算,得到实际摘要信息,然后比较与同一目标字节码文件对应的初始摘要信息和实际摘要信息是否一致,若一致,则表示该目标字节码文件完整,否则表示不完整。
在操作S330,利用私钥,对包括至少一个初始摘要信息的摘要文件进行签名,得到签名文件。
例如,密钥对包括私钥和公钥,其中,私钥存储于云端,私钥可以用于对摘要文件进行加密得到签名信息,签名信息存储在签名文件中。公钥存储于终端,公钥可以用于对签名文件进行解密,从而进行验签。验签通过表示摘要文件是可信的,否则表示摘要文件被篡改。
可以看出,云端根据多个初始摘要信息确定一个签名信息,而非确定与初始摘要文件一一对应的签名信息,因此云端无需向终端下发多个签名信息,进而使终端可以一次性验证多个加密文件的初始摘要信息是否可信。
在操作S340,将多个待打包文件打包为数据包,其中,数据包的文件头信息包含多个待打包文件各自的位置信息。
例如,操作S340可以参考上文的操作S220。
例如,待打包文件可以包括至少一个字节码加密文件,还可以包括配置加密文件、摘要文件、签名文件中的至少一个。
例如,数据包的文件头信息中可以包括多个待打包文件的位置信息,例如包括字节码加密文件的位置信息,还可以包括配置加密文件的位置信息、摘要文件的位置信息、签名文件的位置信息中的至少一个。
在操作S350,向终端发送数据包。
根据本公开实施例提供的技术方案,由于云端对至少一个加密文件各自进行哈希运算,得到至少一个初始摘要信息。然后利用私钥,对包括至少一个初始摘要信息的摘要文件进行签名,得到签名文件。因此,在终端进行解密的过程中,可以通过验证签名来确定摘要文件是否可信。
此外,在摘要文件可信的情况下,还可以将摘要文件中的初始摘要信息和基于解密后的目标字节码文件得到的实际摘要信息进行对比,从而确定目标字节码文件是否完整。
根据本公开另一实施例,文件加密方法还可以包括以下操作:云端对密钥进行加密,得到加密后的密钥,然后云端向终端发送加密后的密钥。
例如,云端可以对密钥进行信封加密,并将加密后的密钥发送至终端。接下来,终端可以先解密来获得密钥,然后利用密钥对加密文件进行解密,来得到目标字节码文件和配置文件。
可以看出,由于云端对密钥进行加密,然后发送至终端,因此可以通过二次加密的方式提高密钥的安全性,进而提高字节码文件的安全性。
在其他实施例中,云端可以不对密钥进行加密处理。或者云端和终端可以预先约定用于对目标字节码加密文件进行解密的密钥,云端无需向终端下发该密钥。
图4是根据本公开实施例的文件解密方法的示意流程图。
如图4所示,该文件解密方法400可以包括操作S410~操作S430,该文件解密方法400可以由终端执行。
在操作S410,获取数据包。数据包包括至少一个字节码加密文件,数据包的文件头信息包含至少一个字节码加密文件各自的位置信息。
例如,终端可以接收云端下发的数据包。
在操作S420,根据接收到的指令和文件头信息中的位置信息,从数据包中释放与指令相关的目标加密字节码文件。
例如,终端接收到指令,指令中包括待执行的字节码文件的标识,然后可以在文件头信息中确定与该标识对应的目标位置信息,然后从数据包中提取与目标位置信息对应的加密字节码文件。
在操作S430,对目标加密字节码文件进行解密,得到目标字节码文件。
例如,云端将用于解密的密钥发送至终端,或者终端预先存储用于解密的密钥,然后终端利用密钥执行解密操作,从而得到目标字节码文件。
在得到目标字节码文件之后,终端可以加载和执行目标字节码文件。
应用本公开实施例提供的技术方案,由于云端预先对下发的字节码文件进行加密,因此可以提高安全性。此外,终端可以根据位置信息从数据包中解密自身所需要的字节码文件,而无需将全部字节码加密文件进行解密然后遍历查找自身需要的字节码文件,因此能够提高文件处理效率。
图5是根据本公开实施例的文件解密方法的示意流程图。
如图5所示,该文件解密方法500可以包括操作S510~操作S590,该文件解密方法500可以由终端执行。
在操作S510,获取数据包。
在操作S520,释放数据包中的摘要文件和签名文件。其中,摘要文件包括对至少一个字节码加密文件各自进行哈希运算得到的至少一个初始摘要信息,签名文件是利用私钥对摘要文件进行签名得到的。
例如,可以根据文件头信息中的摘要文件的位置信息和签名文件的位置信息,从数据包中提取摘要文件和签名文件。
在操作S530,利用与私钥对应的公钥、摘要文件和签名文件进行签名验证。
例如,可以利用公钥对签名文件进行解密,得到解密出的摘要文件,然后将解密出的摘要文件和从数据包中提取出的摘要文件进行比较。若二者一致,则表示签名验证通过,不一致则表示签名验证未通过。
可以看出,云端预先根据多个初始摘要信息确定一个签名信息,而非确定与初始摘要文件一一对应的签名信息,因此云端无需向终端下发多个签名信息。因此,终端可以一次性验证多个加密文件的初始摘要信息是否可信,提高处理效率。
在操作S540,确定签名验证是否通过。若未通过,则可以结束。若通过,则表示摘要文件是可信的,还可以将签名验证通过作为从数据包中释放目标加密字节码文件的操作的触发条件,进而执行操作S550。
在操作S550,根据接收到的指令和文件头信息中的位置信息,从数据包中释放与指令相关的目标加密字节码文件。
例如,操作S550可以参考上文的操作S420。
在操作S560,对目标加密字节码文件进行解密,得到目标字节码文件。
在操作S570,根据数据包中的摘要文件,确定将与目标字节码文件对应的初始摘要信息。摘要文件包括对至少一个字节码加密文件各自进行哈希运算得到的至少一个初始摘要信息。
在操作S580,对目标字节码文件进行哈希运算,得到实际摘要信息。
在操作S590,将与目标字节码文件对应的初始摘要信息和实际摘要信息进行比较,确定与目标字节码文件对应的初始摘要信息和实际摘要信息是否一致。
摘要文件信息用于验证解密出的文件是否完整。若与目标字节码文件对应的初始摘要信息和实际摘要信息一致,则表示目标代码文件完整,可以加载并执行目标字节码文件。若不一致,则表示目标字节码文件不完整,不完整的原因可以是内存空间不足,或者目标字节码被篡改等,可以结束或报出故障或重试。
在一些实施例中,可以仅利用摘要信息确定文件的完整性。在另一些实施例中,可以仅验证签名是否通过。
根据本公开另一实施例,文件解密方法中对目标加密字节码文件进行解密来得到目标字节码文件的操作可以包括以下操作:终端获取加密后的密钥,并对加密后的密钥进行解密,得到密钥,然后利用密钥对目标加密字节码文件进行解密,得到目标字节码文件。通过二次加密的方式提高密钥的安全性,进而提高字节码文件的安全性。
图6A是根据本公开实施例的文件加密方法的示意原理图,图6B是根据本公开实施例的文件解密方法的示意原理图。
以下结合图6A和图6B,以编程语言是Lua为例,对本实施例提供的文件加密方法和文件解密方法进行说明。
如图6A所示,该文件加密方法可以由云端执行,以下对文件加密方法进行说明。
待加密文件601可以包括字节码文件和对配置文件,加密处理后的文件可以称为加密文件602,加密文件602可以包括字节码加密文件和配置加密文件。
例如,可以对Lua源文件进行混淆、预编译得到混淆后的字节码文件,本实施例中的字节码文件具体为Lua文件,例如图6A中的a.luac、b.luac、c.luac、1.luac、2.luac、3.luac。Lua字节码可被Lua引擎直接加载和执行。
然后对混淆后的字节码文件进行加密,得到字节码加密文件,例如得到a.f、b.f、c.f、1.f、2.f、3.f。加密能够保护源码,字节码可以被反编译,在实际应用中,例如可以使用AES对称加密,密钥可在云端随机生成,从而使得每次打包使用的密钥都不同,一个数据包605中的多个文件可以使用同一个密钥进行加密。还可以对加密后的文件进行压缩,从而减少文件的数据量。例如,可以使用无损压缩等对文件进行压缩,为了简明,此处不再赘述。
还可以对配置文件Manifest.xml进行加密和压缩,从而得到配置加密文件Manifest.f。配置文件Manifest.xml包括与Lua字节码文件的执行规则和执行顺序相关的配置信息。
接下来,可以对加密文件602进行哈希运算,从而得到各个加密文件602的摘要信息,并将各摘要信息存储于摘要文件603中,图6A和图6B中,MF表示摘要文件603。摘要文件603是根据加密文件602动态生成的,摘要文件603的内容包括各加密文件602的摘要信息组成的文本,例如摘要文件603的内容包括加密文件602的名称和对应的摘要信息,此外,摘要文件603的内容还可以版本号。摘要文件603用于验证文件的完整性。
接下来,使用密钥对中的私钥对摘要文件603的内容进行签名,得到签名信息,将签名信息存储在签名文件604中,图6A和图6B中,SF表示签名文件604。密钥对包括私钥和公钥,私钥存储于云端,公钥存储于终端,密钥对可以是RSA密钥对。密钥对可以是随机生成的,不同业务线可以使用不同的密钥对,从而在一个业务线被破解了之后,确保另一个业务线仍然是安全的。
接下来,将各个加密文件602、摘要文件603、签名文件604打包组装成数据包605。数据包605具有文件头信息File Header,并且文件头信息包含数据包605中各个文件的组装规则,组装规则可以包括各个文件在数据包605中的位置信息,例如签名文件604的起始位置和终止位置可以是0和1024,摘要文件603的起始位置和终止位置可以是1025和2048。此外,文件头信息中还可以包括其他信息,例如可以包括模式magic_num、版本号version、数据长度data_length等。
数据包605按照文件流的方式存储数据,文件头信息后依次放置各文件的数据内容。在解包时可以根据位置信息索引到对应的数据,然后将数据取出再形成一个单独的文件。
打包得到数据包605之后,云端可以向终端下方数据包605。此外,云端还可以对AES密钥进行加密实现二次保护,对AES密钥进行加密的方式例如可以是信封加密,然后云端将加密后的AES密钥下方至终端。
如图6B所示,该文件解密方法可以由终端执行,以下对文件解密方法进行说明。
终端获取数据包605之后,先使用终端存储的公钥对摘要文件603和签名文件604进行签名验证。若验签未通过,则结束。若验签通过,则确定摘要文件603未被篡改,摘要文件603是可信的。
接下来,可以进一步根据实际需求从数据包605中释放出目标加密文件602’,例如终端需要使用的字节码文件包括a.luac、b.luac、c.luac,终端无需使用1.luac、2.luac、3.luac,则终端从数据包605中释放出的目标加密文件602’可以包括a.f、b.f、c.f,还可以包括配置加密文件Manifest.f。此外,终端获取加密后的密钥后,可以先进行解密,来获取密钥。
接下来,终端利用获取的密钥对目标加密文件602’进行解压缩和解密,解密到文件流。例如解密后得到目标文件可以包括配置文件Manifest.xml和字节码文件a.luac、b.luac、c.luac。
接下来,终端可以利用摘要文件603验证解密后的文件流的完整性。例如,对a.luac进行哈希运算得到实际摘要信息,然后将实际摘要信息与摘要文件603中的a.luac的初始摘要信息进行比较,若一致,则表示a.luac是完整的,否则是不完整的。b.luac和c.luac同样进行完整性验证。
接下来,在解密后文件流完整的情况下,可以使用Lua引擎加载和执行目标字节码文件,例如按照配置文件Manifest.xml中的执行规则和执行顺序,执行a.luac、b.luac和c.luac。。
需要说明的是,解密后的文件可以不存储于磁盘,而是在内存中使用和执行,从而降低数据被窃取的可能性。执行完毕后可以释放内存,提高内存利用率。
图7是根据本公开实施例的文件加密装置的示意结构框图。
该文件加密装置700可以包括第一加密模块710和第一打包模块720。
第一加密模块710用于利用密钥对至少一个字节码文件分别进行加密,得到至少一个字节码加密文件。
第一打包模块720用于将至少一个字节码加密文件打包为数据包。其中,数据包的文件头信息包含至少一个字节码加密文件各自的位置信息。
根据本公开另一实施例,上述文件加密装置还包括:第一运算模块和第二打包模块。第一运算模块用于对至少一个字节码加密文件各自进行哈希运算,得到至少一个初始摘要信息。第二打包模块用于将包括至少一个初始摘要信息的摘要文件,打包至数据包中。
根据本公开另一实施例,上述文件加密装置还包括:签名模块和第三打包模块。签名模块用于利用私钥,对包括至少一个初始摘要信息的摘要文件进行签名,得到签名文件。第三打包模块用于将签名文件打包至数据包中。
根据本公开另一实施例,上述文件加密装置还包括:第二加密模块和第二发送模块。第二加密模块用于对密钥进行加密,得到加密后的密钥。第二发送模块用于发送加密后的密钥。
图8是根据本公开实施例的文件解密装置的示意结构框图。
如图8所示,该文件解密装置800可以包括:获取模块810、第一释放模块820和解密模块830。
获取模块810用于获取数据包,数据包包括至少一个字节码加密文件,数据包的文件头信息包含至少一个字节码加密文件各自的位置信息。
第一释放模块820用于根据接收到的指令和文件头信息中的位置信息,从数据包中释放与指令相关的目标加密字节码文件。
解密模块830用于对目标加密字节码文件进行解密,得到目标字节码文件。
根据本公开另一实施例,上述文件解密装置还包括:第二释放模块、验签模块和触发模块。第二释放模块用于释放数据包中的摘要文件和签名文件。其中,摘要文件包括对至少一个字节码加密文件各自进行哈希运算得到的至少一个初始摘要信息,签名文件是利用私钥对摘要文件进行签名得到的。验签模块用于利用与私钥对应的公钥、摘要文件和签名文件进行签名验证。触发模块用于响应于检测到签名验证已通过,触发从数据包中释放目标加密字节码文件的操作。
根据本公开另一实施例,上述文件解密装置还包括:第一确定模块、第二运算模块、比较模块以及第二确定模块。第一确定模块用于在得到目标字节码文件之后,根据数据包中的摘要文件,确定将与目标字节码文件对应的初始摘要信息,其中,摘要文件包括对至少一个字节码加密文件各自进行哈希运算得到的至少一个初始摘要信息。第二运算模块用于对目标字节码文件进行哈希运算,得到实际摘要信息。比较模块用于将与目标字节码文件对应的初始摘要信息和实际摘要信息进行比较。第二确定模块用于响应于检测到与目标字节码文件对应的初始摘要信息和实际摘要信息一致,确定目标字节码文件完整,以执行目标字节码文件。
根据本公开另一实施例,解密模块包括:获取子模块、第一解密子模块和第二解密子模块。获取子模块用于获取加密后的密钥。第一解密子模块用于对加密后的密钥进行解密,得到密钥。第二解密子模块用于利用密钥对目标加密字节码文件进行解密,得到目标字节码文件。
本公开的技术方案中,所涉及的用户个人信息的收集、存储、使用、加工、传输、提供和公开等处理,均符合相关法律法规的规定,且不违背公序良俗。
在本公开的技术方案中,在获取或采集用户个人信息之前,均获取了用户的授权或同意。
根据本公开的实施例,本公开还提供了一种电子设备,包括至少一个处理器;以及与至少一个处理器通信连接的存储器;存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行上述文件加密方法和/或文件解密方法。
根据本公开的实施例,本公开还提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,计算机指令用于使计算机执行上述文件加密方法和/或文件解密方法。
根据本公开的实施例,本公开还提供了一种计算机程序产品,包括计算机程序,计算机程序在被处理器执行时实现上述文件加密方法和/或文件解密方法。
图9示出了可以用来实施本公开的实施例的示例电子设备900的示意性框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
如图9所示,设备900包括计算单元901,其可以根据存储在只读存储器(ROM)902中的计算机程序或者从存储单元908加载到随机访问存储器(RAM)903中的计算机程序,来执行各种适当的动作和处理。在RAM 903中,还可存储设备900操作所需的各种程序和数据。计算单元901、ROM 902以及RAM 903通过总线904彼此相连。输入/输出(I/O)接口905也连接至总线904。
设备900中的多个部件连接至I/O接口905,包括:输入单元906,例如键盘、鼠标等;输出单元907,例如各种类型的显示器、扬声器等;存储单元908,例如磁盘、光盘等;以及通信单元909,例如网卡、调制解调器、无线通信收发机等。通信单元909允许设备900通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
计算单元901可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元901的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元901执行上文所描述的各个方法和处理,例如文件加密方法和/或文件解密方法。例如,在一些实施例中,文件加密方法和/或文件解密方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元908。在一些实施例中,计算机程序的部分或者全部可以经由ROM 902和/或通信单元909而被载入和/或安装到设备900上。当计算机程序加载到RAM 903并由计算单元901执行时,可以执行上文描述的文件加密方法和文件解密方法的一个或多个步骤。备选地,在其他实施例中,计算单元901可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行文件加密方法和/或文件解密方法。
本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、复杂可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。
Claims (19)
1.一种文件加密方法,包括:
利用密钥对至少一个字节码文件分别进行加密,得到至少一个字节码加密文件;以及
将所述至少一个字节码加密文件打包为数据包;其中,所述数据包的文件头信息包含所述至少一个字节码加密文件各自的位置信息。
2.根据权利要求1所述的方法,还包括:
对所述至少一个字节码加密文件各自进行哈希运算,得到至少一个初始摘要信息;以及
将包括所述至少一个初始摘要信息的摘要文件,打包至所述数据包中。
3.根据权利要求2所述的方法,还包括:
利用私钥,对包括所述至少一个初始摘要信息的摘要文件进行签名,得到签名文件;以及
将所述签名文件打包至所述数据包中。
4.根据权利要求1至3任意一项所述的方法,还包括:
对所述密钥进行加密,得到加密后的密钥;以及
发送所述加密后的密钥。
5.一种文件解密方法,包括:
获取数据包,所述数据包包括至少一个字节码加密文件,所述数据包的文件头信息包含所述至少一个字节码加密文件各自的位置信息;
根据接收到的指令和所述文件头信息中的位置信息,从所述数据包中释放与所述指令相关的目标加密字节码文件;以及
对目标加密字节码文件进行解密,得到目标字节码文件。
6.根据权利要求5所述的方法,还包括:
释放所述数据包中的摘要文件和签名文件;其中,所述摘要文件包括对所述至少一个字节码加密文件各自进行哈希运算得到的至少一个初始摘要信息,所述签名文件是利用私钥对所述摘要文件进行签名得到的;
利用与所述私钥对应的公钥、所述摘要文件和所述签名文件进行签名验证;以及
响应于检测到签名验证已通过,触发从所述数据包中释放目标加密字节码文件的操作。
7.根据权利要求5所述的方法,还包括:在得到目标字节码文件之后,
根据所述数据包中的摘要文件,确定将与所述目标字节码文件对应的初始摘要信息;其中,所述摘要文件包括对所述至少一个字节码加密文件各自进行哈希运算得到的至少一个初始摘要信息;
对所述目标字节码文件进行哈希运算,得到实际摘要信息;
将与所述目标字节码文件对应的初始摘要信息和所述实际摘要信息进行比较;以及
响应于检测到与所述目标字节码文件对应的初始摘要信息和所述实际摘要信息一致,确定所述目标字节码文件完整,以执行所述目标字节码文件。
8.根据权利要求5至7任意一项所述的方法,其中,所述对目标加密字节码文件进行解密,得到目标字节码文件包括:
获取加密后的密钥;
对所述加密后的密钥进行解密,得到密钥;以及
利用所述密钥对目标加密字节码文件进行解密,得到所述目标字节码文件。
9.一种文件加密装置,包括:
第一加密模块,用于利用密钥对至少一个字节码文件分别进行加密,得到至少一个字节码加密文件;以及
第一打包模块,用于将所述至少一个字节码加密文件打包为数据包;其中,所述数据包的文件头信息包含所述至少一个字节码加密文件各自的位置信息。
10.根据权利要求9所述的装置,还包括:
第一运算模块,用于对所述至少一个字节码加密文件各自进行哈希运算,得到至少一个初始摘要信息;以及
第二打包模块,用于将包括所述至少一个初始摘要信息的摘要文件,打包至所述数据包中。
11.根据权利要求10所述的装置,还包括:
签名模块,用于利用私钥,对包括所述至少一个初始摘要信息的摘要文件进行签名,得到签名文件;以及
第三打包模块,用于将所述签名文件打包至所述数据包中。
12.根据权利要求9至11任意一项所述的装置,还包括:
第二加密模块,用于对所述密钥进行加密,得到加密后的密钥;以及
第二发送模块,用于发送所述加密后的密钥。
13.一种文件解密装置,包括:
获取模块,用于获取数据包,所述数据包包括至少一个字节码加密文件,所述数据包的文件头信息包含所述至少一个字节码加密文件各自的位置信息;
第一释放模块,用于根据接收到的指令和所述文件头信息中的位置信息,从所述数据包中释放与所述指令相关的目标加密字节码文件;以及
解密模块,用于对目标加密字节码文件进行解密,得到目标字节码文件。
14.根据权利要求13所述的装置,还包括:
第二释放模块,用于释放所述数据包中的摘要文件和签名文件;其中,所述摘要文件包括对所述至少一个字节码加密文件各自进行哈希运算得到的至少一个初始摘要信息,所述签名文件是利用私钥对所述摘要文件进行签名得到的;
验签模块,用于利用与所述私钥对应的公钥、所述摘要文件和所述签名文件进行签名验证;以及
触发模块,用于响应于检测到签名验证已通过,触发从所述数据包中释放目标加密字节码文件的操作。
15.根据权利要求13所述的装置,还包括:在得到目标字节码文件之后,
第一确定模块,用于根据所述数据包中的摘要文件,确定将与所述目标字节码文件对应的初始摘要信息;其中,所述摘要文件包括对所述至少一个字节码加密文件各自进行哈希运算得到的至少一个初始摘要信息;
第二运算模块,用于对所述目标字节码文件进行哈希运算,得到实际摘要信息;
比较模块,用于将与所述目标字节码文件对应的初始摘要信息和所述实际摘要信息进行比较;以及
第二确定模块,用于响应于检测到与所述目标字节码文件对应的初始摘要信息和所述实际摘要信息一致,确定所述目标字节码文件完整,以执行所述目标字节码文件。
16.根据权利要求13至15任意一项所述的装置,其中,所述解密模块包括:
获取子模块,用于获取加密后的密钥;
第一解密子模块,用于对所述加密后的密钥进行解密,得到密钥;以及
第二解密子模块,用于利用所述密钥对目标加密字节码文件进行解密,得到所述目标字节码文件。
17.一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1至8中任一项所述的方法。
18.一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行根据权利要求1至8中任一项所述的方法。
19.一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现根据权利要求1至8中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211487294.6A CN115883078A (zh) | 2022-11-23 | 2022-11-23 | 文件加密方法、文件解密方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211487294.6A CN115883078A (zh) | 2022-11-23 | 2022-11-23 | 文件加密方法、文件解密方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115883078A true CN115883078A (zh) | 2023-03-31 |
Family
ID=85763932
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211487294.6A Pending CN115883078A (zh) | 2022-11-23 | 2022-11-23 | 文件加密方法、文件解密方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115883078A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117834951A (zh) * | 2024-01-12 | 2024-04-05 | 中星电子股份有限公司 | 签名信息发送方法、装置、电子设备和计算机可读介质 |
-
2022
- 2022-11-23 CN CN202211487294.6A patent/CN115883078A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117834951A (zh) * | 2024-01-12 | 2024-04-05 | 中星电子股份有限公司 | 签名信息发送方法、装置、电子设备和计算机可读介质 |
CN117834951B (zh) * | 2024-01-12 | 2024-09-06 | 中星电子股份有限公司 | 签名信息发送方法、装置、电子设备和计算机可读介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10547596B2 (en) | Secure processing environment for protecting sensitive information | |
US11516236B2 (en) | Systems and methods for detection and mitigation of malicious encryption | |
CN111371549B (zh) | 一种报文数据传输方法、装置及系统 | |
US10904231B2 (en) | Encryption using multi-level encryption key derivation | |
CN111131278B (zh) | 数据处理方法及装置、计算机存储介质、电子设备 | |
CN107786331B (zh) | 数据处理方法、装置、系统及计算机可读存储介质 | |
US20230325516A1 (en) | Method for file encryption, terminal, electronic device and computer-readable storage medium | |
WO2023029447A1 (zh) | 模型保护方法、装置、设备、系统以及存储介质 | |
US10673627B2 (en) | Encryption device, search device, computer readable medium, encryption method, and search method | |
US10635826B2 (en) | System and method for securing data in a storage medium | |
CN115276978A (zh) | 一种数据处理方法以及相关装置 | |
CN113630412B (zh) | 资源下载方法、资源下载装置、电子设备以及存储介质 | |
CN115883078A (zh) | 文件加密方法、文件解密方法、装置、设备及存储介质 | |
CN109995534B (zh) | 一种对应用程序进行安全认证的方法和装置 | |
CN114884714B (zh) | 任务处理方法、装置、设备及存储介质 | |
CN111831978A (zh) | 一种对配置文件进行保护的方法及装置 | |
CN113992345B (zh) | 网页敏感数据加解密方法、装置、电子设备及存储介质 | |
CN114239014A (zh) | 基于离线设备的文件处理方法、装置和电子设备 | |
US20240333502A1 (en) | Ciphers to protect keystrokes | |
CN115242389B (zh) | 基于多级节点网络的数据混淆传输方法和系统 | |
Knockel et al. | The Not-So-Silent Type: Vulnerabilities in Chinese IME Keyboards’ Network Security Protocols | |
CN118869242A (zh) | 信息获取方法、装置、电子设备及存储介质 | |
CN113761551A (zh) | 密钥的生成方法、加密方法、解密方法和装置 | |
CN115801271A (zh) | 一种动态口令的实现方法、设备及存储介质 | |
CN116089995A (zh) | 数据插入方法、数据查询方法和装置 |
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 |