CN108011879B - 文件加密、解密的方法、装置、设备和存储介质 - Google Patents

文件加密、解密的方法、装置、设备和存储介质 Download PDF

Info

Publication number
CN108011879B
CN108011879B CN201711239706.3A CN201711239706A CN108011879B CN 108011879 B CN108011879 B CN 108011879B CN 201711239706 A CN201711239706 A CN 201711239706A CN 108011879 B CN108011879 B CN 108011879B
Authority
CN
China
Prior art keywords
file
data
key
decryption key
decrypting
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
Application number
CN201711239706.3A
Other languages
English (en)
Other versions
CN108011879A (zh
Inventor
谢元烨
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Guangzhou Kugou Computer Technology Co Ltd
Original Assignee
Guangzhou Kugou Computer Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Guangzhou Kugou Computer Technology Co Ltd filed Critical Guangzhou Kugou Computer Technology Co Ltd
Priority to CN201711239706.3A priority Critical patent/CN108011879B/zh
Publication of CN108011879A publication Critical patent/CN108011879A/zh
Application granted granted Critical
Publication of CN108011879B publication Critical patent/CN108011879B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/0435Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply symmetric encryption, i.e. same key used for encryption and decryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/0478Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload applying multiple layers of encryption, e.g. nested tunnels or encrypting the content with a first key and then with at least a second key

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)

Abstract

本发明公开了一种文件加密、解密的方法、装置、设备和存储介质,属于信息安全技术领域。方法包括:获取待加密的第一文件,通过第一加密密钥加密该第一文件,得到第二文件;通过第二加密密钥对第一解密密钥进行加密,得到第一数据,该第一解密密钥为解密该第二文件的密钥;将第二解密密钥存储在目标程序的可执行文件中,以及将该第一数据存储在该目标程序的可执行文件的壳信息中,该目标程序为运行该第二文件的应用程序,该第二解密密钥为解密该第一数据的密钥。由于通过两次加密,并将两次加密对应的解密密钥分开存储在不可同时获取的存储空间,使得窃取者无法同时获取两个解密密钥,从而提高了文件加密的安全性。

Description

文件加密、解密的方法、装置、设备和存储介质
技术领域
本发明涉及信息安全技术领域,特别涉及一种文件加密、解密的方法、装置、设备和存储介质。
背景技术
随着互联网技术的发展,通过互联网听歌、观看电影、电视剧等成为广大用户的普遍需求,影视作品的发行商用户可以将制作的视频文件、音频文件等多媒体文件上传至授权的服务器中,以供用户欣赏。通常,服务器可以将多媒体文件进行加密,以保护发行商用户的版权,防止他人在未经授权的情况下窃取这些文件。
相关技术中,服务器加密多媒体文件的过程一般为:服务器将待加密的多媒体文件通过加密算法,对该多媒体文件进行加密,并将解密密钥存储在该加密后的多媒体文件中。
在实现本发明的过程中,发明人发现相关技术至少存在以下问题:
上述方法实际上是直接对多媒体文件进行加密处理,然而,解密密钥直接存储在多媒体文件中,使得上述加密过程中的加密算法很容易被破解,从而基于该解密密钥直接获取多媒体文件中的音频、视频数据,导致上述数据加密方法的安全性较低。
发明内容
本发明提供了一种文件加密、解密的方法、装置、设备和存储介质,可以解决现有技术中安全性较低的技术问题。技术方案如下:
第一方面,本发明实施例提供了一种文件加密的方法,所述方法包括:
获取待加密的第一文件,通过第一加密密钥加密所述第一文件,得到第二文件;
通过第二加密密钥对第一解密密钥进行加密,得到第一数据,所述第一解密密钥为解密所述第二文件的密钥;
将第二解密密钥存储在目标程序的可执行文件中,以及将所述第一数据存储在所述目标程序的可执行文件的壳信息中,所述目标程序为运行所述第二文件的应用程序,所述第二解密密钥为解密所述第一数据的密钥。
可选的,所述将所述第一数据存储在所述目标程序的可执行文件的壳信息中,包括:
将所述第一数据作为所述目标程序的可执行文件的第一壳信息,通过所述第一壳信息对所述目标程序的可执行文件进行加壳处理。
可选的,所述第一加密密钥为不对称密钥。
可选的,所述获取待加密的第一文件,包括:
通过编码器和预设算法,将待加密的目标数据封装为所述第三文件;
通过第三加密密钥对所述预设算法进行加密,得到第二数据;
将所述第二数据添加到所述第三文件中,得到所述第一文件。
可选的,所述通过第三加密密钥对所述预设算法进行加密,得到第二数据之后,所述方法还包括:
通过第四加密密钥对第三解密密钥进行加密,得到第三数据,所述第三解密密钥为解密所述第二数据的密钥;
将第四解密密钥存储在解码器的可执行文件中,以及,将所述第三数据存储在所述解码器的可执行文件的壳信息中,所述第四解密密钥为解密所述第三数据的密钥。
可选的,所述通过第三加密密钥对所述预设算法进行加密,得到第二数据,包括:
通过第三加密密钥对所述预设算法的算法标识进行加密,得到所述第二数据;
相应的,所述通过第三加密密钥对所述预设算法进行加密,得到第二数据之后,所述方法还包括:
关联存储所述算法标识和所述预设算法。
可选的,所述将所述第三数据存储在所述编码器的可执行文件的壳信息中,包括:
将所述第三数据作为所述解码器的可执行文件的第二壳信息,通过所述第二壳信息对所述解码器的可执行文件进行加壳处理。
可选的,所述目标数据为多媒体数据和/或,所述第二加密密钥为不对称密钥。
第二方面,本发明实施例提供一种文件解密的方法,所述方法包括:
获取待解密的第二文件,所述第二文件为通过第一加密密钥对第一文件进行加密得到的文件;
从目标程序的可执行文件的壳信息中获取第一数据,从目标程序的可执行文件中获取第二解密密钥,所述目标程序为运行所述第二文件的应用程序,所述第二解密密钥为解密所述第一数据的密钥,所述第一数据为加密后的第一解密密钥,所述第一解密密钥为解密所述第二文件得到第一文件的密钥;
根据所述第二解密密钥,对所述第一数据进行解密,得到第一解密密钥;
根据所述第一解密密钥,对所述第二文件进行解密,得到所述第一文件。
可选的,所述第一文件由第二数据和第三文件组成,所述第三文件为基于预设算法和编码器对待获取的目标数据进行封装得到,所述第二数据为加密后的预设算法;所述根据所述第一解密密钥,对所述第二文件进行解密,得到所述第一文件之后,所述方法还包括:
从解码器的可执行文件的壳信息中获取第三数据,从所述解码器的可执行文件中获取第四解密密钥,所述第三数据为加密后的第三解密密钥,所述第四解密密钥为解密所述第三数据的密钥,所述解码器用于解封装第三文件得到目标数据;
根据所述第四解密密钥,对所述第三数据进行解密,得到第三解密密钥;
从第一文件中获取第二数据,根据所述第三解密密钥,对第二数据进行解密,得到预设算法;
获取第三文件,通过预设算法和解码器,对所述第三文件进行解封装,得到目标数据。
可选的,所述根据所述第三解密密钥,对第二数据进行解密,得到预设算法,包括:
根据所述第三解密密钥,对第二数据进行解密,得到所述预设算法的算法标识;
根据所述预设算法的算法标识,从算法标识和预设算法的对应关系中,获取所述算法标识对应的预设算法。
第三方面,本发明实施例一种文件加密的装置,所述装置包括:
第一获取模块,用于获取待加密的第一文件,通过第一加密密钥加密所述第一文件,得到第二文件;
第一加密模块,用于通过第二加密密钥对第一解密密钥进行加密,得到第一数据,所述第一解密密钥为解密所述第二文件的密钥;
第一存储模块,用于将第二解密密钥存储在目标程序的可执行文件中,以及将所述第一数据存储在所述目标程序的可执行文件的壳信息中,所述目标程序为运行所述第二文件的应用程序,所述第二解密密钥为解密所述第一数据的密钥。
可选的,所述第一存储模块,还用于将所述第一数据作为所述目标程序的可执行文件的第一壳信息,通过所述第一壳信息对所述目标程序的可执行文件进行加壳处理。
可选的,所述第一加密密钥为不对称密钥。
可选的,所述第一获取模块,还用于通过编码器和预设算法,将待加密的目标数据封装为所述第三文件;通过第三加密密钥对所述预设算法进行加密,得到第二数据;将所述第二数据添加到所述第三文件中,得到所述第一文件。
可选的,所述装置还包括:
第二加密模块,用于通过第四加密密钥对第三解密密钥进行加密,得到第三数据,所述第三解密密钥为解密所述第二数据的密钥;
第二存储模块,用于将第四解密密钥存储在解码器的可执行文件中,以及,将所述第三数据存储在所述解码器的可执行文件的壳信息中,所述第四解密密钥为解密所述第三数据的密钥。
可选的,所述第一获取模块,还用于通过第三加密密钥对所述预设算法的算法标识进行加密,得到所述第二数据;
相应的,所述装置还包括:
第三存储模块,用于关联存储所述算法标识和所述预设算法。
可选的,所述第二存储模块,还用于将所述第三数据作为所述解码器的可执行文件的第二壳信息,通过所述第二壳信息对所述解码器的可执行文件进行加壳处理。
可选的,所述目标数据为多媒体数据和/或,所述第二加密密钥为不对称密钥。
第四方面,本发明实施例一种文件解密的装置,所述装置包括:
第二获取模块,用于获取待解密的第二文件,所述第二文件为通过第一加密密钥对第一文件进行加密得到的文件;
所述第二获取模块,还用于从目标程序的可执行文件的壳信息中获取第一数据,从目标程序的可执行文件中获取第二解密密钥,所述目标程序为运行所述第二文件的应用程序,所述第二解密密钥为解密所述第一数据的密钥,所述第一数据为加密后的第一解密密钥,所述第一解密密钥为解密所述第二文件得到第一文件的密钥;
解密模块,用于根据所述第二解密密钥,对所述第一数据进行解密,得到第一解密密钥;
所述解密模块,还用于根据所述第一解密密钥,对所述第二文件进行解密,得到所述第一文件。
可选的,所述装置还包括:
第三获取模块,用于从解码器的可执行文件的壳信息中获取第三数据,从所述解码器的可执行文件中获取第四解密密钥,所述第三数据为加密后的第三解密密钥,所述第四解密密钥为解密所述第三数据的密钥,所述解码器用于解封装第三文件得到目标数据;
所述解密模块,还用于根据所述第四解密密钥,对所述第三数据进行解密,得到第三解密密钥;
所述第三获取模块,还用于从第一文件中获取第二数据,根据所述第三解密密钥,对第二数据进行解密,得到预设算法;
解封装模块,用于获取第三文件,通过预设算法和解码器,对所述第三文件进行解封装,得到目标数据。
可选的,所述第三获取模块,还用于根据所述第三解密密钥,对第二数据进行解密,得到所述预设算法的算法标识;根据所述预设算法的算法标识,从算法标识和预设算法的对应关系中,获取所述算法标识对应的预设算法。
第五方面,本发明实施例一种文件加密装置,包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现第一方面中任一所述的文件加密的方法。
第六方面,本发明实施例一种文件解密装置,包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现第二方面中任一所述的文件解密的方法。
第七方面,本发明实施例一种存储介质,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现第一方面中任一权利要求所述的文件加密的方法。
第八方面,本发明实施例一种存储介质,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现第一方面中任一权利要求所述的文件解密的方法。
本发明实施例中,服务器获取待加密的第一文件,通过第一加密密钥加密该第一文件,得到第二文件;通过第二加密密钥对第一解密密钥进行加密,得到第一数据,该第一解密密钥为解密该第二文件的密钥;将第二解密密钥存储在目标程序的可执行文件中,以及将该第一数据存储在该目标程序的可执行文件的壳信息中,该目标程序为运行该第二文件的应用程序,该第二解密密钥为解密该第一数据的密钥。由于通过两次加密,并将两次加密对应的解密密钥分开存储在不可同时获取的存储空间,使得窃取者无法同时获取两个解密密钥,从而提高了文件加密的安全性。
附图说明
图1是本发明实施例提供的一种实施环境示意图;
图2是本发明实施例提供的一种文件加密的方法流程图;
图3是本发明实施例提供的一种文件解密的方法流程图;
图4是本发明实施例提供的一种文件加密的方法流程图;
图5是本发明实施例提供的一种文件解密的方法流程图;
图6是本发明实施例提供的一种文件加密的装置框图;
图7是本发明实施例提供的一种文件解密的装置框图;
图8是本发明实施例提供的一种终端的结构示意图;
图9是本发明实施例提供的一种服务器的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
本发明实施例提供了一种实施环境,参见图1,该实施环境包括第一终端101与服务器102。第一终端101与服务器102之间通过网络连接。第一终端101中运行服务器102关联的应用程序,基于该应用程序可以登录服务器102,从而与服务器102来进行交互,以使用服务器所提供的服务。该应用程序可以为多媒体播放应用、社交应用等。
第一终端101可以通过该应用程序将本地的第一文件上传到服务器102上;为了保护第一文件,第一终端101可以对第一文件进行加密,得到第二文件,将第二文件上传到服务器102中。当然,第一终端101也可以不对第一文件进行加密,而直接将第一文件上传到服务器102中,由服务器102对第一文件进行加密,得到第二文件。第一文件可以为多媒体文件、文本文件、应用程序的运行文件。多媒体文件可以为视频文件或者音频文件。应用程序的运行文件可以为应用程序的配置文件或者启动文件。当第一文件为多媒体文件时,第一终端101可以先采集多媒体数据,将多媒体数据封装成第一文件,然后由第一终端101或者服务器102对第一文件进行加密。当然,第一终端101也可以不将多媒体数据封装为第一文件,而直接将多媒体数据上传到服务器102中,由服务器进行封装并加密。
第一终端101可以为用户的终端或者发行商的终端。例如,第一终端101可以为手机终端、PAD(Portable Android Device,平板电脑)终端或者电脑终端等任一安装该应用程序的设备。服务器102是该应用程序的后台服务器。服务器102可以为一台服务器,或者由若干台服务器组成的服务器集群,或者是一个云计算服务器中心。
该实施环境中还包括第二终端103,第二终端103中也运行服务器102关联的应用程序,基于该应用程序可以登录服务器102,从而与服务器102来进行交互,以使用服务器所提供的服务。当第二终端103从服务器102中下载第一文件时,第二终端103从服务器102中获取加密后的第二文件,对第二文件进行解密,得到第一文件。
第二终端103为用户使用的终端,并且,第一终端101和第二终端103可以为同一个终端,第一终端101和第二终端103也可以为不同的终端。例如,第二终端102可以为手机终端、PAD终端或者电脑终端等任一安装该应用程序的设备。
图2是本发明实施例提供的一种文件加密的方法流程图,该方法的执行主体可以为第一终端或者服务器,本发明实施例对此不做具体限定。在本发明实施例中,以加密设备为服务器为例进行说明。如图2所示,该方法包括:
步骤201:获取待加密的第一文件,通过第一加密密钥加密该第一文件,得到第二文件。
步骤202:通过第二加密密钥对第一解密密钥进行加密,得到第一数据,该第一解密密钥为解密该第二文件的密钥。
步骤203:将第二解密密钥存储在目标程序的可执行文件中,以及将该第一数据存储在该目标程序的可执行文件的壳信息中,该目标程序为运行该第二文件的应用程序,该第二解密密钥为解密该第一数据的密钥。
可选的,该将该第一数据存储在该目标程序的可执行文件的壳信息中,包括:
将该第一数据作为该目标程序的可执行文件的第一壳信息,通过该第一壳信息对该目标程序的可执行文件进行加壳处理。
可选的,该第一加密密钥为不对称密钥。
可选的,该获取待加密的第一文件,包括:
通过编码器和预设算法,将待加密的目标数据封装为该第三文件;
通过第三加密密钥对该预设算法进行加密,得到第二数据;
将该第二数据添加到该第三文件中,得到该第一文件。
可选的,该通过第三加密密钥对该预设算法进行加密,得到第二数据之后,该方法还包括:
通过第四加密密钥对第三解密密钥进行加密,得到第三数据,该第三解密密钥为解密该第二数据的密钥;
将第四解密密钥存储在解码器的可执行文件中,以及,将该第三数据存储在该解码器的可执行文件的壳信息中,该第四解密密钥为解密该第三数据的密钥。
可选的,该通过第三加密密钥对该预设算法进行加密,得到第二数据,包括:
通过第三加密密钥对该预设算法的算法标识进行加密,得到该第二数据;
相应的,该通过第三加密密钥对该预设算法进行加密,得到第二数据之后,该方法还包括:
关联存储该算法标识和该预设算法。
可选的,该将该第三数据存储在该编码器的可执行文件的壳信息中,包括:
将该第三数据作为该解码器的可执行文件的第二壳信息,通过该第二壳信息对该解码器的可执行文件进行加壳处理。
可选的,该目标数据为多媒体数据和/或,该第二加密密钥为不对称密钥。
本发明实施例中,服务器获取待加密的第一文件,通过第一加密密钥加密该第一文件,得到第二文件;通过第二加密密钥对第一解密密钥进行加密,得到第一数据,该第一解密密钥为解密该第二文件的密钥;将第二解密密钥存储在目标程序的可执行文件中,以及将该第一数据存储在该目标程序的可执行文件的壳信息中,该目标程序为运行该第二文件的应用程序,该第二解密密钥为解密该第一数据的密钥。由于通过两次加密,并将两次加密对应的解密密钥分开存储在不可同时获取的存储空间,使得窃取者无法同时获取两个解密密钥,从而提高了文件加密的安全性。
图3是本发明实施例提供的一种文件解密的方法流程图,该方法的执行主体可以为第二终端、第一终端或者服务器等任一可运行加壳处理后的目标程序的解密设备,本发明实施例对此不做具体限定。在本发明实施例中,以解密设备为第二终端为例进行说明。如图3所示,该方法包括:
步骤301:获取待解密的第二文件,该第二文件为通过第一加密密钥对第一文件进行加密得到的文件;
步骤302:从目标程序的可执行文件的壳信息中获取第一数据,从目标程序的可执行文件中获取第二解密密钥,该目标程序为运行该第二文件的应用程序,该第二解密密钥为解密该第一数据的密钥,该第一数据为加密后的第一解密密钥,该第一解密密钥为解密该第二文件得到第一文件的密钥;
步骤303:根据该第二解密密钥,对该第一数据进行解密,得到第一解密密钥;
步骤304:根据该第一解密密钥,对该第二文件进行解密,得到该第一文件。
可选的,该第一文件由第二数据和第三文件组成,该第三文件为基于预设算法和编码器对待获取的目标数据进行封装得到,该第二数据为加密后的预设算法;该根据该第一解密密钥,对该第二文件进行解密,得到该第一文件之后,该方法还包括:
从解码器的可执行文件的壳信息中获取第三数据,从该解码器的可执行文件中获取第四解密密钥,该第三数据为加密后的第三解密密钥,该第四解密密钥为解密该第三数据的密钥,该解码器用于解封装第三文件得到目标数据;
根据该第四解密密钥,对该第三数据进行解密,得到第三解密密钥;
从第一文件中获取第二数据,根据该第三解密密钥,对第二数据进行解密,得到预设算法;
获取第三文件,通过预设算法和解码器,对该第三文件进行解封装,得到目标数据。
可选的,该根据该第三解密密钥,对第二数据进行解密,得到预设算法,包括:
根据该第三解密密钥,对第二数据进行解密,得到该预设算法的算法标识;
根据该预设算法的算法标识,从算法标识和预设算法的对应关系中,获取该算法标识对应的预设算法。
本发明实施例中,第二终端获取待解密的第二文件后,从目标程序的可执行文件的壳信息中获取第一数据,从目标程序的可执行文件中获取第二解密密钥,并根据该第二解密密钥,对该第一数据进行解密,得到第一解密密钥,从而根据该第一解密密钥,对第二文件进行解密,得到第一文件。由于第二终端需要从两个不同的空间中获取解密密钥,通过两次解密才能得到第一文件,并且,受到壳信息的限制,窃取者无法同时窃取到第一数据和第二解密密钥,从而提高了文件解密的安全性。
图4是本发明实施例提供的一种文件加密的方法流程图,该方法的执行主体可以为第一终端或者服务器等任一可进行文件加密的加密设备中,本发明实施例对此不做具体限定。在本发明实施例中,以加密设备为服务器为例进行说明。如图4所示,该方法包括:
步骤401:服务器获取待加密的第一文件。
第一文件可以为多媒体文件、文本文件或者应用程序的运行文件。多媒体文件可以为视频文件或者音频文件。应用程序的运行文件可以为应用程序的配置文件或者启动文件等。并且,第一文件可以为服务器中存储的文件,也可以为终端当前上传的文件,或者由服务器根据第一终端上传的目标数据得到的文件。
(一):当第一文件为服务器中存储的文件时,第一终端可以触发服务器对文件进行加密。相应的,本步骤可以为:第一终端向服务器发送加密指令,该加密指令中携带待加密的第一文件的文件标识;服务器接收第一终端发送的加密指令,根据第一文件的文件标识,获取第一文件。
服务器中存储第一终端上传的每个文件标识和文件的对应关系。相应的,服务器根据第一文件的文件标识,获取第一文件的步骤可以为:服务器根据第一文件的文件标识,从文件标识和文件的对应关系中获取第一文件。
第一终端向服务器发送加密指令之前,第一终端向服务器发送查看指令,该查看指令中携带第一用户的用户标识,第一用户为使用第一终端的用户。服务器接收第一终端发送的查看指令,根据第一用户的用户标识,获取第一用户上传的至少一个文件标识,向第一终端发送至少一个文件标识。第一终端接收至少一个文件标识,获取被选择的第一文件的文件标识。其中,文件标识可以为文件名称、文件编号等。
(二):当第一文件为由服务器根据第一终端上传的目标数据得到的文件时,本步骤可以为:第一终端向服务器发送待加密的目标数据,服务器接收第一终端的待加密的目标数据,将该目标数据封装为第一文件。
本步骤中,服务器将该目标数据封装为第一文件的步骤可以为:服务器接收第一终端发送的目标数据,通过编码器和预设算法,将待加密的目标数据封装为第一文件。
本发明实施例中,服务器事实上是对该第一文件中的目标数据进行保护,因此,为了进一步提高该目标数据的安全性,服务器还可以先对目标数据进行转换,再通过后续步骤402对第一文件进行加密。则服务器将该目标数据封装为第一文件的步骤可以通过以下步骤a-c实现。
步骤a:服务器通过编码器和预设算法,将待加密的目标数据封装为该第三文件。
其中,该目标数据可以为多媒体数据,例如,音频数据、视频数据、文字数据或图像数据等;本步骤中,该待加密的目标数据实际上是裸数据。具体的,本步骤可以为:服务器获取待加密的目标数据,通过预设算法,将该目标数据进行转换,得到转换后的目标数据。服务器将转换后的目标数据输入编码器中,通过该编码器,将该转换后的目标数据转换为二进制数据,并将该二进制数据封装为第三文件。
其中,在加密过程,该预设算法用于对该目标数据进行转换,得到另一种与目标数据不同的数据。在解密过程,解密设备还需通过该预设算法还原出目标数据。因此,该预设算法可以为可逆运算。其中,该可逆运算可以为任一种知道正向运算符号和运算值就能准确推导其唯一反向运算符号与运算值的运算;例如,可逆运算1+3=4,由1、3和加法运算,即可得到反向运算的过程为:4-3=1。
步骤b:服务器通过第三加密密钥对该预设算法进行加密,得到第二数据。
本发明实施例中,该第三加密密钥为不对称密钥。为了进一步保护该目标数据的安全性以及用户对该目标数据的版权,服务器还可以对该预设算法进行加密。其中,为了提高加密效率,服务器可以仅加密预设算法的算法标识,并将预设算法与第一文件分别存储在不同的存储空间中,本步骤可以为:服务器通过第三加密密钥对该预设算法的算法标识进行加密,得到该第二数据。服务器通过加密预设算法,以使窃取者即使窃取到该转换后的目标数据,也不能得到预设算法,从而无法还原出目标数据,进而提高了该目标数据的安全性,提高了文件加密方法的实用性。
进一步的,服务器得到该第二数据之后,服务器关联存储该算法标识和该预设算法,方便解密设备后续基于算法标识获取预设算法。
步骤c:服务器将该第二数据添加到该第三文件中,得到该第一文件。
本步骤中,服务器可以通过数据合并器实现上述添加过程,也即是,服务器通过数据合并器,将该第二数据插入到该第三文件的预设位置处,得到第一文件。其中,服务器通过数据合并器,将该第二数据插入到该第三文件的预设位置处的步骤可以为:服务器将第三文件中的二进制格式的目标数据和该第二数据输入到数据合并器中,并在数据合并器中,将该第二数据的位置预先定义为该第三文件的预设位置,获取该数据合并器输出的合并数据,将该合并数据封装为第一文件。
其中,数据合并器在加密过程中将该第二数据插入第三文件的预设位置处,并且,数据合并器将该预设位置的位置标识传输给数据分离器,以使数据分离器在解密过程中,基于该位置标识,将该第二数据从第一文件中分离出。需要说明的是,该预设位置可以根据用户需要设置并更改,本发明实施例对此不做具体限定。例如,该预设位置可以为第三文件的起始位置、第三文件的结束位置或者中间任一位置等。以起始位置为例,则服务器将该第二数据的位置预先定义为该二进制格式的目标数据的位置之前,从而将该第二数据插入到第三文件的起始位置处。上述过程需要数据合并器向数据分离器传输位置标识,该数据分离器一般位于解密设备中,也即是,该过程需要网络通信才可实现。事实上,数据合并器和数据发送器可以事先协商该预设位置,也即是,数据合并器和数据发送器事先协商并各自存储该预设位置的位置标识,从而后续加、解密过程无需网络通信,即可获取该预设位置,节省了加密、解密的时间,提高了处理效率。
(三):当第一文件为终端当前上传的文件时,本步骤可以为:第一终端获取待加密的第一文件,向服务器发送第一文件;服务器接收第一终端发送的第一文件。
第一文件可以为第一终端文件库中的一文件,也可以为第一终端当前生成的一文件。当第一文件为文件库中的一文件时,第一终端获取第一文件的步骤可以为:第一终端接收用户触发的加密指令,该加密指令携带待加密文件的文件标识,第一终端根据该文件标识,从文件库中获取该文件标识对应的第一文件。
当第一文件为第一终端当前生成的一文件时,第一终端获取第一文件的步骤可以为:第一终端采集目标数据,通过编码器和预设算法,将待加密的目标数据封装为该第三文件;通过第三加密密钥对该预设算法进行加密,得到第二数据;将该第二数据添加到该第三文件中,得到该第一文件。
其中,第一终端对目标数据进行封装得到第一文件的实现方式同上述服务器目标数据进行封装得到第一文件的实现方式一致,此处不再一一赘述。
步骤402:服务器通过第一加密密钥加密该第一文件,得到第二文件。
本发明实施例中,该第一加密密钥为不对称密钥。本步骤可以为:终端通过不对称加密算法的第一加密密钥,对该第一文件中的数据进行加密处理,得到第二文件。
其中,该第一加密密钥实际上是不对称加密算法的私钥,由于采用不对称加密算法,该第一加密密钥对应的第一解密密钥为不对称加密算法的公钥或者私钥。也即是,解密设备可以通过私钥进行解密,也可以通过公钥进行解密。一般来说,该第二文件数量往往较多,即使窃取者通过暴力破解,解密出其中一个文件。然而,由于暴力破解过程所用的破解密钥为私钥,而私钥仅对本文件有效,对其它文件无效,因此,即使窃取者侥幸破解出一个文件,也无法直接得到其它文件的解密密钥,从而加大了对第二文件的破解难度,保护了第二文件的安全性。
需要说明的是,该第二文件即为未取得浏览权限的其他用户所看到的文件。该第二文件是加密的文件,并且,该第二文件中的数据为转换后的目标数据,且对转换所用的预设算法进行了加密。因此,实际上该第二文件中被服务器执行了两层保护,从而进一步加强对该第二文件的安全防护。
步骤403:服务器通过第二加密密钥对第一解密密钥进行加密,得到第一数据,该第一解密密钥为解密该第二文件的密钥。
本发明实施例中,该第二加密密钥为对称加密算法的公钥。本步骤可以为:服务器通过对称加密算法的第二加密密钥,对该第一解密密钥进行加密处理,得到第一数据。需要说明的是,服务器通过对第二文件的解密密钥做进一步的安全保护,使得窃取者只能获取到加密的第一解密密钥,即,第一数据,从而不能通过第一数据解密第二文件。
进一步的,由于服务器还加密预设算法得到第二数据,因此,服务器还可以对该第二数据做进一步的安全保护,该过程可以为:服务器通过第四加密密钥对第三解密密钥进行加密,得到第三数据。其中,该第三解密密钥为解密该第二数据的密钥,该第四加密密钥可以为对称加密算法的公钥。也即是,服务器通过对称加密算法的第四加密密钥,对该第三解密密钥进行加密处理,得到第三数据。需要说明的是,服务器通过对预设算法做进一步的安全保护,使得窃取者仅能获取到加密的第三解密密钥,即,第三数据,从而不能通过第三数据得到预设算法,也就不能得到还原出目标数据的运算逻辑,通过至少两层安全保护,进一步提高了目标数据的安全性。
进一步的,服务器基于第一文件执行两次加密过程,并通过以下步骤404,将第二解密密钥和第一数据分别存储在不同位置,从而进一步增大非法窃取的难度。
步骤404:服务器将第二解密密钥存储在目标程序的可执行文件中,以及将该第一数据存储在该目标程序的可执行文件的壳信息中,该第二解密密钥为解密该第一数据的密钥,该目标程序为运行该第二文件的应用程序。
本发明实施例中,服务器可以对该目标程序进行加壳处理,从而防止该目标程序被破解;由于每个目标程序需要通过该应用程序对应的可执行文件运行。因此,服务器可以将第一数据存储在壳信息中,将解密第一数据的第二解密密钥存储在可执行文件中。其中,服务器将第二解密密钥存储在目标程序的可执行文件中,实际上是将第二解密密钥存储在目标程序的可执行文件对应的存储空间中的过程。加壳处理是指,服务器通过加壳程序,对该目标程序进行加壳处理,实现在该目标程序中加入壳信息的过程。该壳信息用于为加壳处理后的目标程序提供需要的数据以及对该目标程序进行保护,该壳信息可以为一段指令程序。
其中,第二加密密钥为对称密钥,事实上,服务器可以将该第二解密密钥可以作为一个常量进行存储,也即是,服务器将该第二解密密钥作为常量写入该目标程序的可执行文件的代码中。服务器将该第一数据存储在该目标程序的可执行文件的壳信息中的步骤可以为:服务器将该第一数据作为该目标程序的可执行文件的第一壳信息,通过该第一壳信息对该目标程序的可执行文件进行加壳处理。
需要说明的是,一般来说,服务器对目标程序进行加壳处理时,可以在壳信息中插入使用者提供信息。因此,服务器通过该第一壳信息对该目标程序的可执行文件进行加壳处理的步骤可以为:服务器可以将该第一壳信息作为壳信息的使用者提供信息,对该目标程序的可执行文件进行加壳处理,并将该第一壳信息写入目标程序的壳信息中。其中,服务器将该第一数据存储在目标程序的壳信息中,实际上是将第一数据存储在该壳信息对应的存储空间中的过程。进一步的,服务器还可以存储该第一壳信息在该壳信息中的位置,以便于后续解密过程中,直接基于该位置获取第一壳信息,即第一数据。
在一种可能实现方式中,服务器获取的目标程序为已经进行加壳处理的目标程序,因此,服务器存储第一数据的步骤还可以为:服务器获取该目标程序的可执行文件的壳信息,将该第一数据插入到该可执行文件的壳信息中。
进一步的,由于服务器对预设算法进行加密得到第二数据后,还对解密第二数据的第三解密密钥进行加密,得到第三数据,其中,服务器通过第四加密密钥加密第三解密密钥,第四解密密钥用于解密该第三解密密钥。因此,服务器也可以将该第四解密密钥和第三数据分别存储在不同位置。一般来说,目标程序通常需要通过解码器对文件进行解码,才能运行或打开该文件,并且,服务器也需对该解码器进行加壳处理。因此,服务器存储该第四解密密钥和该第三数据的步骤可以为:服务器将第四解密密钥存储在解码器的可执行文件中,以及,将该第三数据存储在该解码器的可执行文件的壳信息中,该第四解密密钥为解密第三数据的密钥。其中,服务器将第四解密密钥存储在解码器的可执行文件中,实际上是将第四解密密钥存储在解码器的可执行文件对应的存储空间中的过程。
其中,与第二解密密钥类似,服务器也可以将该第四解密密钥作为常量写入该解码器的的可执行文件的代码中。服务器将该第三数据存储在该编码器的可执行文件的壳信息中的步骤可以为:服务器将该第三数据作为该解码器的可执行文件的第二壳信息,通过该第二壳信息对该解码器的可执行文件进行加壳处理。
需要说明的是,与存储第一数据的实现方式类似,服务器通过该第二壳信息对该解码器的可执行文件进行加壳处理的步骤可以为:服务器可以将该第二壳信息作为壳信息的使用者提供信息,对该对该目标程序的可执行文件进行加壳处理,并将该第二壳信息写入壳信息中。其中,服务器将该第三数据存储在该编码器的可执行文件的壳信息中,实际上是将第三数据存储在该壳信息对应的存储空间中的过程。
在一种可能实现方式中,服务器获取的解码器为已经进行加壳处理的解码器,因此,服务器存储第三数据的步骤还可以为:服务器获取该解码器的可执行文件的壳信息,将该第三数据插入到该解码器的可执行文件的壳信息中。
需要说明的是,由于该目标程序为加壳的目标程序,因此,使得窃取者不能跟踪加壳后的可执行文件的指令执行情况,也即是,窃取者不能得到该目标程序解码第二文件的操作步骤。并且,服务器对第一文件进行加密,以及对第一解密密钥进行加密,并将第一壳信息存储在壳信息中,将第二解密密钥存储在目标程序的可执行文件中。因此,如果窃取者对该目标程序进行脱壳处理,则窃取者同时将第一壳信息也扔掉,而该第一壳信息为加密后的第一解密密钥,从而窃取者无法得到解密第二文件的第一解密密钥;如果窃取者直接暴力破解该目标程序,虽然保留了壳信息中的第一数据,但是,窃取者也无法得到可执行文件中的第二解密密钥,也就无法解密第一数据,得不到第一解密密钥,从而极大地提高了第一文件的安全性。
进一步的,与上述加密文件的过程相似,服务器还对用于转换目标数据的预设算法进行加密,并对第三解密密钥进行加密,并对两次加密对应的解密密钥分开存储,即,将第四解密密钥存储在解码器的可执行文件中,将第三数据存储在解码器的可执行文件的壳信息中。因此,窃取者受壳信息的限制,也只能获取第四解密密钥和第三数据中的一个,仍无法得出目标数据,从而极大的提高了目标数据的安全性。
需要说明的是,上述对文件加密的过程也可由终端实现,也即是,终端先对待加密文件进行加密,将加密后的文件传输至服务器。其中,终端加密文件的实现方式同上述步骤一致,此处不再一一赘述。
本发明实施例中,服务器获取待加密的第一文件,通过第一加密密钥加密该第一文件,得到第二文件;通过第二加密密钥对第一解密密钥进行加密,得到第一数据,该第一解密密钥为解密该第二文件的密钥;将第二解密密钥存储在目标程序的可执行文件中,以及将该第一数据存储在该目标程序的可执行文件的壳信息中,该目标程序为运行该第二文件的应用程序,该第二解密密钥为解密该第一数据的密钥。由于通过两次加密,并将两次加密对应的解密密钥分开存储在不可同时获取的存储空间,使得窃取者无法同时获取两个解密密钥,从而提高了文件加密的安全性。
图5是本发明实施例提供的一种文件解密的方法流程图,该方法的执行主体可以为第二终端、第一终端或者服务器等任一可运行加壳处理后的目标程序的解密设备,本发明实施例对此不做具体限定。在本发明实施例中,以解密设备为第二终端为例进行说明。如图5所示,该方法包括:
步骤501:第二终端获取待解密的第二文件,该第二文件为通过第一加密密钥对第一文件进行加密得到的文件。
本发明实施例中,第一文件可以为多媒体文件、文本文件或者应用程序的运行文件。多媒体文件可以为视频文件或者音频文件。应用程序的运行文件可以为应用程序的配置文件或者启动文件等。以第一文件为多媒体文件为例,发行商的第一终端事先将多媒体文件传输至服务器,并且,为了保护对多媒体文件的版权,发行商的第一终端或者服务器将该第一文件加密,得到第二文件。用户想要观看第一文件时,用户的第二终端可通过购买、加会员等方式,获取第一文件的观看权限,第二终端从服务器中下载第二文件,该第二文件为加密后的第一文件。然后,第二终端通过后续步骤解密第二文件,从而得到第一文件。
步骤502:第二终端从目标程序的可执行文件的壳信息中获取第一壳信息,也即是第一数据,从目标程序的可执行文件中获取第二解密密钥。
其中,该目标程序为运行第二文件的应用程序,该第二解密密钥为解密该第一数据的密钥,该第一数据为加密后的第一解密密钥,该第一解密密钥为解密第二文件得到第一文件的密钥,该第一文件即为待获取的目标文件。
步骤503:第二终端根据该第二解密密钥,对该第一数据进行解密,得到第一解密密钥。
步骤504:第二终端根据该第一解密密钥,对第二文件进行解密,得到第一文件。
进一步的,该第一文件基于待加密的目标数据和第二数据生成,该第二数据为加密后的预设算法,该预设算法用于封装得到该目标数据,第二终端得到第一文件之后,还可以通过以下步骤505-507,对该第一文件进行进一步解密,以得到目标数据。
步骤505:第二终端从解码器的可执行文件的壳信息中获取第二壳信息,也即是第三数据,从该解码器中获取第四解密密钥。
其中,该该第三数据为加密后的第三解密密钥,该第四解密密钥为解密该第三数据的密钥。
其中,该解码器用于解封装第三文件得到目标数据。
步骤506:第二终端根据该第四解密密钥,对该第三数据进行解密,得到第三解密密钥。
步骤507:第二终端从第一文件中获取第二数据,根据该第三解密密钥,对第二数据进行解密,得到预设算法,获取该第一文件对应的第三文件,通过预设算法和解码器,对第三文件进行解封装,得到目标数据。
具体的,该第二终端中可以有数据分离器,该数据分离器中实现存储该第二数据所在的预设位置的位置标识,第二终端可以通过该数据分离器获取第二数据,第二终端从第一文件中获取第二数据的步骤可以为:第二终端将该第一文件输入到数据分离器中,该数据分离器根据该位置标识,确定该位置标识对应的预设位置,获取该预设位置处的第二数据,从而将该第二数据从该第一文件中分离出来。
其中,第二终端根据该第三解密密钥,对第二数据进行解密,得到预设算法的步骤可以为:第二终端根据该第三解密密钥,对第二数据进行解密,得到该预设算法的算法标识;第二终端通过解码器,根据该预设算法的算法标识,从算法标识和预设算法的对应关系中,获取该算法标识对应的预设算法的逆运算,从而基于该预设算法的逆运算,对第三文件进行解封装,得到目标数据。
当然,第二终端获取第一文件的观看权限时,也可由对服务器对第二文件进行解密,向第二终端直接传输第一文件,也即是,上述解密文件的过程也可以由服务器实现,具体的,服务器解密文件的实现方式通过述步骤一致,此处不再一一赘述。
本发明实施例中,第二终端获取待解密的第二文件后,从目标程序的可执行文件的壳信息中获取第一数据,从目标程序的可执行文件中获取第二解密密钥,并根据该第二解密密钥,对该第一数据进行解密,得到第一解密密钥,从而根据该第一解密密钥,对第二文件进行解密,得到第一文件。由于第二终端需要从两个不同的空间中获取解密密钥,通过两次解密才能得到第一文件,并且,受到壳信息的限制,窃取者无法同时窃取到第一数据和第二解密密钥,从而提高了文件解密的安全性。
图6是本发明实施例提供的一种文件加密的装置框图,该装置可以应用在第一终端或者服务器等任一可进行文件加密的加密设备中,本发明实施例对此不做具体限定。在本发明实施例中,以加密设备为服务器为例进行说明。如图6所示,该装置包括:
第一获取模块601,用于获取待加密的第一文件,通过第一加密密钥加密该第一文件,得到第二文件;
第一加密模块602,用于通过第二加密密钥对第一解密密钥进行加密,得到第一数据,该第一解密密钥为解密该第二文件的密钥;
第一存储模块603,用于将第二解密密钥存储在目标程序的可执行文件中,以及将该第一数据存储在该目标程序的可执行文件的壳信息中,该目标程序为运行该第二文件的应用程序,该第二解密密钥为解密该第一数据的密钥。
可选的,该第一存储模块603,还用于将该第一数据作为该目标程序的可执行文件的第一壳信息,通过该第一壳信息对该目标程序的可执行文件进行加壳处理。
可选的,该第一加密密钥为不对称密钥。
可选的,该第一获取模块601,还用于通过编码器和预设算法,将待加密的目标数据封装为该第三文件;通过第三加密密钥对该预设算法进行加密,得到第二数据;将该第二数据添加到该第三文件中,得到该第一文件。
可选的,该装置还包括:
第二加密模块,用于通过第四加密密钥对第三解密密钥进行加密,得到第三数据,该第三解密密钥为解密该第二数据的密钥;
第二存储模块,用于将第四解密密钥存储在解码器的可执行文件中,以及,将该第三数据存储在该解码器的可执行文件的壳信息中,该第四解密密钥为解密该第三数据的密钥。
可选的,该第一获取模块601,还用于通过第三加密密钥对该预设算法的算法标识进行加密,得到该第二数据;
相应的,该装置还包括:
第三存储模块,用于关联存储该算法标识和该预设算法。
可选的,该第二存储模块,还用于将该第三数据作为该解码器的可执行文件的第二壳信息,通过该第二壳信息对该解码器的可执行文件进行加壳处理。
可选的,该目标数据为多媒体数据和/或,该第二加密密钥为不对称密钥。
本发明实施例中,服务器获取待加密的第一文件,通过第一加密密钥加密该第一文件,得到第二文件;通过第二加密密钥对第一解密密钥进行加密,得到第一数据,该第一解密密钥为解密该第二文件的密钥;将第二解密密钥存储在目标程序的可执行文件中,以及将该第一数据存储在该目标程序的可执行文件的壳信息中,该目标程序为运行该第二文件的应用程序,该第二解密密钥为解密该第一数据的密钥。由于通过两次加密,并将两次加密对应的解密密钥分开存储在不可同时获取的存储空间,使得窃取者无法同时获取两个解密密钥,从而提高了文件加密的安全性。
图7是本发明实施例提供的一种文件解密的装置框图,该装置可以应用在第二终端、第一终端或者服务器等任一可运行加壳处理后的目标程序的解密设备中,本发明实施例对此不做具体限定。在本发明实施例中,以解密设备为第二终端为例进行说明。如图7所示,该装置包括:
第二获取模块701,用于获取待解密的第二文件,该第二文件为通过第一加密密钥对第一文件进行加密得到的文件;
该第二获取模块701,还用于从目标程序的可执行文件的壳信息中获取第一数据,从目标程序的可执行文件中获取第二解密密钥,该目标程序为运行该第二文件的应用程序,该第二解密密钥为解密该第一数据的密钥,该第一数据为加密后的第一解密密钥,该第一解密密钥为解密该第二文件得到第一文件的密钥;
解密模块702,用于根据该第二解密密钥,对该第一数据进行解密,得到第一解密密钥;
该解密模块702,还用于根据该第一解密密钥,对该第二文件进行解密,得到该第一文件。
可选的,该装置还包括:
第三获取模块,用于从解码器的可执行文件的壳信息中获取第三数据,从该解码器的可执行文件中获取第四解密密钥,该第三数据为加密后的第三解密密钥,该第四解密密钥为解密该第三数据的密钥,该解码器用于解封装第三文件得到目标数据;
该解密模块702,还用于根据该第四解密密钥,对该第三数据进行解密,得到第三解密密钥;
该第三获取模块,还用于从第一文件中获取第二数据,根据该第三解密密钥,对第二数据进行解密,得到预设算法;
解封装模块,用于获取第三文件,通过预设算法和解码器,对该第三文件进行解封装,得到目标数据。
可选的,该第三获取模块,还用于根据该第三解密密钥,对第二数据进行解密,得到该预设算法的算法标识;根据该预设算法的算法标识,从算法标识和预设算法的对应关系中,获取该算法标识对应的预设算法。
本发明实施例中,第二终端获取待解密的第二文件后,从目标程序的可执行文件的壳信息中获取第一数据,从目标程序的可执行文件中获取第二解密密钥,并根据该第二解密密钥,对该第一数据进行解密,得到第一解密密钥,从而根据该第一解密密钥,对第二文件进行解密,得到第一文件。由于第二终端需要从两个不同的空间中获取解密密钥,通过两次解密才能得到第一文件,并且,受到壳信息的限制,窃取者无法同时窃取到第一数据和第二解密密钥,从而提高了文件解密的安全性。
需要说明的是:上述实施例提供的文件加密、解密的装置在文件加密、解密时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的文件加密、解密的装置与文件加密、解密的方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
图8是本发明实施例提供的一种终端的结构示意图。该终端可以用于实施上述实施例所示出的文件加密、解密的方法中的终端所执行的功能。具体来讲:
终端800可以包括RF(Radio Frequency,射频)电路810、包括有一个或一个以上计算机可读存储介质的存储器820、输入单元830、显示单元840、传感器850、音频电路860、传输模块870、包括有一个或者一个以上处理核心的处理器880、以及电源890等部件。本领域技术人员可以理解,图8中示出的终端结构并不构成对终端的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。其中:
RF电路810可用于收发信息或通话过程中,信号的接收和发送,特别地,将基站的下行信息接收后,交由一个或者一个以上处理器880处理;另外,将涉及上行的数据发送给基站。通常,RF电路810包括但不限于天线、至少一个放大器、调谐器、一个或多个振荡器、用户身份模块(SIM)卡、收发信机、耦合器、LNA(Low Noise Amplifier,低噪声放大器)、双工器等。此外,RF电路810还可以通过无线通信与网络和其他终端通信。所述无线通信可以使用任一通信标准或协议,包括但不限于GSM(Global System of Mobile communication,全球移动通讯系统)、GPRS(General Packet Radio Service,通用分组无线服务)、CDMA(CodeDivision Multiple Access,码分多址)、WCDMA(Wideband Code Division MultipleAccess,宽带码分多址)、LTE(Long Term Evolution,长期演进)、电子邮件、SMS(ShortMessaging Service,短消息服务)等。
存储器820可用于存储软件程序以及模块,如上述示例性实施例所示出的终端所对应的软件程序以及模块,处理器880通过运行存储在存储器820的软件程序以及模块,从而执行各种功能应用以及数据处理,如实现基于视频的交互等。存储器820可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据终端800的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器820可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器820还可以包括存储器控制器,以提供处理器880和输入单元830对存储器820的访问。
输入单元830可用于接收输入的数字或字符信息,以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。具体地,输入单元830可包括触敏表面831以及其他输入终端832。触敏表面831,也称为触摸显示屏或者触控板,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触敏表面831上或在触敏表面831附近的操作),并根据预先设定的程式驱动相应的链接装置。可选的,触敏表面831可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器880,并能接收处理器880发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触敏表面831。除了触敏表面831,输入单元830还可以包括其他输入终端832。具体地,其他输入终端832可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。
显示单元840可用于显示由用户输入的信息或提供给用户的信息以及终端800的各种图形用户接口,这些图形用户接口可以由图形、文本、图标、视频和其任意组合来构成。显示单元840可包括显示面板841,可选的,可以采用LCD(Liquid Crystal Display,液晶显示器)、OLED(Organic Light-Emitting Diode,有机发光二极管)等形式来配置显示面板841。进一步的,触敏表面831可覆盖显示面板841,当触敏表面831检测到在其上或附近的触摸操作后,传送给处理器880以确定触摸事件的类型,随后处理器880根据触摸事件的类型在显示面板841上提供相应的视觉输出。虽然在图8中,触敏表面831与显示面板841是作为两个独立的部件来实现输入和输入功能,但是在某些实施例中,可以将触敏表面831与显示面板841集成而实现输入和输出功能。
终端800还可包括至少一种传感器850,比如光传感器、运动传感器以及其他传感器。具体地,光传感器可包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示面板841的亮度,接近传感器可在终端800移动到耳边时,关闭显示面板841和/或背光。作为运动传感器的一种,重力加速度传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别手机姿态的应用(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;至于终端800还可配置的陀螺仪、气压计、湿度计、温度计、红外线传感器等其他传感器,在此不再赘述。
音频电路860、扬声器861,传声器862可提供用户与终端800之间的音频接口。音频电路860可将接收到的音频数据转换后的电信号,传输到扬声器861,由扬声器861转换为声音信号输出;另一方面,传声器862将收集的声音信号转换为电信号,由音频电路860接收后转换为音频数据,再将音频数据输出处理器880处理后,经RF电路810以发送给比如另一终端,或者将音频数据输出至存储器820以便进一步处理。音频电路860还可能包括耳塞插孔,以提供外设耳机与终端800的通信。
终端800通过传输模块870可以帮助用户收发电子邮件、浏览网页和访问流式媒体等,它为用户提供了无线或有线的宽带互联网访问。虽然图8示出了传输模块870,但是可以理解的是,其并不属于终端800的必须构成,完全可以根据需要在不改变发明的本质的范围内而省略。
处理器880是终端800的控制中心,利用各种接口和线路链接整个手机的各个部分,通过运行或执行存储在存储器820内的软件程序和/或模块,以及调用存储在存储器820内的数据,执行终端800的各种功能和处理数据,从而对手机进行整体监控。可选的,处理器880可包括一个或多个处理核心;优选的,处理器880可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器880中。
终端800还包括给各个部件供电的电源890(比如电池),优选的,电源可以通过电源管理系统与处理器880逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。电源890还可以包括一个或一个以上的直流或交流电源、再充电系统、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。
尽管未示出,终端800还可以包括摄像头、蓝牙模块等,在此不再赘述。具体在本实施例中,终端800的显示单元是触摸屏显示器,终端800还包括有存储器,以及一个或者一个以上的程序,其中一个或者一个以上程序存储于存储器中,且经配置以由一个或者一个以上处理器执行上述一个或者一个以上程序包含用于实施上述实施例中终端所执行操作的指令。
图9是本发明实施例提供的一种服务器的结构示意图。参照图9,服务器900包括处理组件922,其进一步包括一个或多个处理器,以及由存储器932所代表的存储器资源,用于存储可由处理组件922的执行的指令,例如应用程序。存储器932中存储的应用程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理组件922被配置为执行指令,以执行上述文件加密、解密的方法。
服务器900还可以包括一个电源组件926被配置为执行装置900的电源管理,一个有线或无线网络接口950被配置为将装置900连接到网络,和一个输入输出(I/O)接口958。装置900可以操作基于存储在存储器932的操作系统,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM或类似。
在示例性实施例中,还提供了一种存储有计算机程序的计算机可读存储介质,例如存储有计算机程序的存储器,上述计算机程序被处理器执行时实现上述实施例中的文件加密、解密的方法。例如,所述计算机可读存储介质可以是只读内存(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、只读光盘(Compact Disc Read-OnlyMemory,CD-ROM)、磁带、软盘和光数据存储设备等。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (13)

1.一种文件加密的方法,其特征在于,所述方法包括:
获取待加密的第一文件,通过第一加密密钥加密所述第一文件,得到第二文件;
通过第二加密密钥对第一解密密钥进行加密,得到第一数据,所述第一解密密钥为解密所述第二文件的密钥;
将第二解密密钥存储在目标程序的可执行文件中,以及将所述第一数据存储在所述目标程序的可执行文件的壳信息中,所述目标程序为运行所述第二文件的应用程序,所述第二解密密钥为解密所述第一数据的密钥;
其中,所述获取待加密的第一文件,包括:
通过编码器和预设算法,将待加密的目标数据封装为第三文件;
通过第三加密密钥对所述预设算法进行加密,得到第二数据;
将所述第二数据添加到所述第三文件中,得到所述第一文件。
2.根据权利要求1所述的方法,其特征在于,所述将所述第一数据存储在所述目标程序的可执行文件的壳信息中,包括:
将所述第一数据作为所述目标程序的可执行文件的第一壳信息,通过所述第一壳信息对所述目标程序的可执行文件进行加壳处理。
3.根据权利要求1或2所述的方法,其特征在于,所述第一加密密钥为不对称密钥。
4.根据权利要求1所述的方法,其特征在于,所述通过第三加密密钥对所述预设算法进行加密,得到第二数据之后,所述方法还包括:
通过第四加密密钥对第三解密密钥进行加密,得到第三数据,所述第三解密密钥为解密所述第二数据的密钥;
将第四解密密钥存储在解码器的可执行文件中,以及,将所述第三数据存储在所述解码器的可执行文件的壳信息中,所述第四解密密钥为解密所述第三数据的密钥。
5.根据权利要求1所述的方法,其特征在于,所述通过第三加密密钥对所述预设算法进行加密,得到第二数据,包括:
通过第三加密密钥对所述预设算法的算法标识进行加密,得到所述第二数据;
相应的,所述通过第三加密密钥对所述预设算法进行加密,得到第二数据之后,所述方法还包括:
关联存储所述算法标识和所述预设算法。
6.根据权利要求4或5所述的方法,其特征在于,将第三数据存储在所述编码器的可执行文件的壳信息中,包括:
将所述第三数据作为解码器的可执行文件的第二壳信息,通过所述第二壳信息对所述解码器的可执行文件进行加壳处理。
7.根据权利要求1和4-5任一所述的方法,其特征在于,所述目标数据为多媒体数据和/或,所述第二加密密钥为不对称密钥。
8.一种文件解密的方法,其特征在于,所述方法包括:
获取待解密的第二文件,所述第二文件为通过第一加密密钥对第一文件进行加密得到的文件;
从目标程序的可执行文件的壳信息中获取第一数据,从目标程序的可执行文件中获取第二解密密钥,所述目标程序为运行所述第二文件的应用程序,所述第二解密密钥为解密所述第一数据的密钥,所述第一数据为加密后的第一解密密钥,所述第一解密密钥为解密所述第二文件得到第一文件的密钥;
根据所述第二解密密钥,对所述第一数据进行解密,得到第一解密密钥;
根据所述第一解密密钥,对所述第二文件进行解密,得到所述第一文件;
所述第一文件由第二数据和第三文件组成,所述第三文件为基于预设算法和编码器对待获取的目标数据进行封装得到,所述第二数据为加密后的预设算法;所述根据所述第一解密密钥,对所述第二文件进行解密,得到所述第一文件之后,所述方法还包括:
从解码器的可执行文件的壳信息中获取第三数据,从所述解码器的可执行文件中获取第四解密密钥,所述第三数据为加密后的第三解密密钥,所述第四解密密钥为解密所述第三数据的密钥,所述解码器用于解封装第三文件得到目标数据;
根据所述第四解密密钥,对所述第三数据进行解密,得到第三解密密钥;
从第一文件中获取第二数据,根据所述第三解密密钥,对第二数据进行解密,得到预设算法;
获取第三文件,通过预设算法和解码器,对所述第三文件进行解封装,得到目标数据。
9.根据权利要求8所述的方法,其特征在于,所述根据所述第三解密密钥,对第二数据进行解密,得到预设算法,包括:
根据所述第三解密密钥,对第二数据进行解密,得到所述预设算法的算法标识;
根据所述预设算法的算法标识,从算法标识和预设算法的对应关系中,获取所述算法标识对应的预设算法。
10.一种文件加密的装置,其特征在于,所述装置包括:
第一获取模块,用于获取待加密的第一文件,通过第一加密密钥加密所述第一文件,得到第二文件;
第一加密模块,用于通过第二加密密钥对第一解密密钥进行加密,得到第一数据,所述第一解密密钥为解密所述第二文件的密钥;
第一存储模块,用于将第二解密密钥存储在目标程序的可执行文件中,以及将所述第一数据存储在所述目标程序的可执行文件的壳信息中,所述目标程序为运行所述第二文件的应用程序,所述第二解密密钥为解密所述第一数据的密钥;
其中,所述获取待加密的第一文件,包括:
通过编码器和预设算法,将待加密的目标数据封装为第三文件;
通过第三加密密钥对所述预设算法进行加密,得到第二数据;
将所述第二数据添加到所述第三文件中,得到所述第一文件。
11.一种文件解密的装置,其特征在于,所述装置包括:
第二获取模块,用于获取待解密的第二文件,所述第二文件为通过第一加密密钥对第一文件进行加密得到的文件;
所述第二获取模块,还用于从目标程序的可执行文件的壳信息中获取第一数据,从目标程序的可执行文件中获取第二解密密钥,所述目标程序为运行所述第二文件的应用程序,所述第二解密密钥为解密所述第一数据的密钥,所述第一数据为加密后的第一解密密钥,所述第一解密密钥为解密所述第二文件得到第一文件的密钥;
解密模块,用于根据所述第二解密密钥,对所述第一数据进行解密,得到第一解密密钥;
所述解密模块,还用于根据所述第一解密密钥,对所述第二文件进行解密,得到所述第一文件;
所述第一文件由第二数据和第三文件组成,所述第三文件为基于预设算法和编码器对待获取的目标数据进行封装得到,所述装置还用于:
从解码器的可执行文件的壳信息中获取第三数据,从所述解码器的可执行文件中获取第四解密密钥,所述第三数据为加密后的第三解密密钥,所述第四解密密钥为解密所述第三数据的密钥,所述解码器用于解封装第三文件得到目标数据;
根据所述第四解密密钥,对所述第三数据进行解密,得到第三解密密钥;
从第一文件中获取第二数据,根据所述第三解密密钥,对第二数据进行解密,得到预设算法;
获取第三文件,通过预设算法和解码器,对所述第三文件进行解封装,得到目标数据。
12.一种文件加密、解密的设备,其特征在于,包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现如权利要求1至7中任一权利要求所述的文件加密的方法,或者,如权利要求8至9中任一权利要求所述的文件解密的方法。
13.一种存储介质,其特征在于,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现如权利要求1至7中任一权利要求所述的文件加密的方法,或者,如权利要求8至9中任一权利要求所述的文件解密的方法。
CN201711239706.3A 2017-11-30 2017-11-30 文件加密、解密的方法、装置、设备和存储介质 Active CN108011879B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201711239706.3A CN108011879B (zh) 2017-11-30 2017-11-30 文件加密、解密的方法、装置、设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201711239706.3A CN108011879B (zh) 2017-11-30 2017-11-30 文件加密、解密的方法、装置、设备和存储介质

Publications (2)

Publication Number Publication Date
CN108011879A CN108011879A (zh) 2018-05-08
CN108011879B true CN108011879B (zh) 2020-10-16

Family

ID=62055438

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201711239706.3A Active CN108011879B (zh) 2017-11-30 2017-11-30 文件加密、解密的方法、装置、设备和存储介质

Country Status (1)

Country Link
CN (1) CN108011879B (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111159661B (zh) * 2018-11-08 2022-07-12 迈普通信技术股份有限公司 一种防止反编译方法、装置、电子设备及存储介质
CN111767550A (zh) * 2019-07-24 2020-10-13 北京沃东天骏信息技术有限公司 数据存储方法和装置
CN110545263B (zh) * 2019-08-15 2022-03-11 咪咕视讯科技有限公司 解密方法、加密方法、终端设备、服务器及可读存储介质
CN111159658B (zh) * 2019-12-16 2022-04-01 广州三七互娱科技有限公司 字节码处理方法、系统、装置、计算机设备和存储介质
CN111639358B (zh) * 2020-06-15 2023-08-22 深圳供电局有限公司 一种指令加密、加密指令解密方法及装置
CN111932752B (zh) * 2020-07-09 2023-11-14 腾讯科技(深圳)有限公司 一种门禁设备的远程控制方法、系统及存储介质
CN113656764B (zh) * 2021-08-18 2024-05-14 天津津航计算技术研究所 一种集成优化系统下的软件加密方法
CN115952518B (zh) * 2022-12-27 2023-08-15 元心信息科技集团有限公司 数据请求方法、装置、电子设备及存储介质
CN116720212B (zh) * 2023-08-10 2023-11-17 上海观安信息技术股份有限公司 文件保护方法及装置、计算机设备和计算机可读存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102136053A (zh) * 2011-03-14 2011-07-27 中兴通讯股份有限公司 对可执行文件源代码保护的方法及装置
CN102339370A (zh) * 2011-09-14 2012-02-01 福建伊时代信息科技股份有限公司 电子文档的保全方法、保全系统和验证系统

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2005064433A1 (en) * 2003-12-22 2005-07-14 Koninklijke Philips Electronics N.V. Software execution protection using an active entity
JP5895471B2 (ja) * 2011-01-17 2016-03-30 株式会社リコー 情報処理装置、プログラム
CN102609666B (zh) * 2012-01-20 2014-07-30 飞天诚信科技股份有限公司 一种可执行程序加壳保护方法
US8997197B2 (en) * 2012-12-12 2015-03-31 Citrix Systems, Inc. Encryption-based data access management
AU2014257953B2 (en) * 2013-04-25 2018-05-10 Treebox Solutions Pte Ltd Method performed by at least one server for processing a data packet from a first computing device to a second computing device to permit end-to-end encryption communication
US9467427B2 (en) * 2014-09-26 2016-10-11 Nalpeiron Inc. Methods and systems for authorizing and deauthorizing a computer license
CN104598799A (zh) * 2015-02-15 2015-05-06 张贵宝 一种存储媒介的读写终端、系统及方法
CN106384025A (zh) * 2016-11-29 2017-02-08 首影科技(深圳)有限公司 显示系统及内容安全发行及显示方法
CN107292134A (zh) * 2017-05-27 2017-10-24 北京思特奇信息技术股份有限公司 一种防止Android应用被反编译的应用加固方法及系统

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102136053A (zh) * 2011-03-14 2011-07-27 中兴通讯股份有限公司 对可执行文件源代码保护的方法及装置
CN102339370A (zh) * 2011-09-14 2012-02-01 福建伊时代信息科技股份有限公司 电子文档的保全方法、保全系统和验证系统

Also Published As

Publication number Publication date
CN108011879A (zh) 2018-05-08

Similar Documents

Publication Publication Date Title
CN108011879B (zh) 文件加密、解密的方法、装置、设备和存储介质
US20210336780A1 (en) Key updating method, apparatus, and system
EP3605989B1 (en) Information sending method, information receiving method, apparatus, and system
CN109600223B (zh) 验证方法、激活方法、装置、设备及存储介质
US10733304B2 (en) Method and apparatus for protecting digital content using device authentication
CN111600710B (zh) 密钥存储方法、装置、终端、服务器及可读介质
CN106850220B (zh) 数据加密方法、数据解密方法及装置
CN110417543B (zh) 一种数据加密方法、装置和存储介质
CN108769027B (zh) 安全通信方法、装置、移动终端和存储介质
EP3543884A1 (en) Method and system for protecting system partition key data, and terminal
CN108809906B (zh) 数据处理方法、系统及装置
CN110858249B (zh) 一种数据库文件加密方法、解密方法和相关装置
CN111563251B (zh) 一种终端设备中私密信息的加密方法和相关装置
CN107154935B (zh) 业务请求方法及装置
US10454905B2 (en) Method and apparatus for encrypting and decrypting picture, and device
CN106255102B (zh) 一种终端设备的鉴定方法及相关设备
CN107317680B (zh) 安全账号的标记方法、系统及计算机可读存储介质
CN111475832B (zh) 一种数据管理的方法以及相关装置
CN111355707A (zh) 一种数据处理方法及相关设备
CN106709282A (zh) 资源文件解密方法及装置
KR20140105343A (ko) 디바이스 및 디바이스에서 복수의 모드를 이용한 데이터의 보안 방법
CN108460251B (zh) 运行应用程序的方法、装置及系统
CN114697007B (zh) 一种密钥管理的方法、相应装置及系统
KR20140105681A (ko) 보안 모드에서 데이터 암호화 장치 및 방법
CN114553612B (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
GR01 Patent grant
GR01 Patent grant