CN107066890B - 一种利用混淆处理对文件进行加密的方法及装置 - Google Patents

一种利用混淆处理对文件进行加密的方法及装置 Download PDF

Info

Publication number
CN107066890B
CN107066890B CN201710279339.3A CN201710279339A CN107066890B CN 107066890 B CN107066890 B CN 107066890B CN 201710279339 A CN201710279339 A CN 201710279339A CN 107066890 B CN107066890 B CN 107066890B
Authority
CN
China
Prior art keywords
file
virtual
fragment
ith
files
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
CN201710279339.3A
Other languages
English (en)
Other versions
CN107066890A (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.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen 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 Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN201710279339.3A priority Critical patent/CN107066890B/zh
Publication of CN107066890A publication Critical patent/CN107066890A/zh
Application granted granted Critical
Publication of CN107066890B publication Critical patent/CN107066890B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2107File encryption

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Health & Medical Sciences (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Bioethics (AREA)
  • Storage Device Security (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种利用混淆处理对文件进行加密的方法及装置,属于计算机技术领域。所述方法包括:读取待加密的n个目标文件;对第i个目标文件进行分片处理,得到m个文件分片;分别建立n个虚拟文件,第i个虚拟文件与第i个目标文件的文件名相同;将每个文件分片随机分配给n个虚拟文件中的一个;记录各个文件分片的虚拟信息;根据虚拟信息,将属于第i个虚拟文件的各个文件分片写入到第i个虚拟文件中。本发明解决了现有技术中对单个文件混淆的破解难度低,对多个文件混淆成一个大文件不利于文件下载和传输,并且需要对调用混淆文件的功能模块进行程序修改的问题,达到了提高破解难度,避免修改功能模块的程序的效果。

Description

一种利用混淆处理对文件进行加密的方法及装置
技术领域
本发明实施例涉及计算机技术领域,特别涉及一种利用混淆处理对文件进行加密的方法及装置。
背景技术
文件的混淆处理是指对文件进行拆分重组的过程。通过对文件进行混淆处理,使得文件中的内容按照预定混淆规则重新排序,从而提高文件的防破解能力。
在实际应用中,某些文件(比如:病毒库文件)为了加强安全性,防止被破解,需要对文件进行混淆处理。现有技术中对文件做混淆处理主要有两种:一种是对单个文件进行混淆;另一种是将多个文件通过混淆处理得到一个大文件。
对于单个文件的混淆,混淆处理后的文件的文件名不变,并且该文件仍然对应单一的功能,破解难度低,若直接删除该文件则可以去除该文件对应的功能;对于多个文件混淆为一个文件,由于混淆得到的文件过大,不利于文件的下载和传输,另外,若其他功能模块需要加载该文件,由于功能模块中对应的是混淆前的文件名,对于混淆得到的新的文件,功能模块则无法加载,需要对功能模块中的程序进行修改,因此实施起来较为复杂。
发明内容
为了解决对单个文件进行混淆,混淆后的文件破解难度低,对多个文件混淆成一个大文件,不利于文件的下载和传输,需要加载该文件的功能模块需要修改程序,实施复杂的问题,本发明实施例提供了一种利用混淆处理对文件进行加密的方法及装置。所述技术方案如下:
第一方面,提供了一种利用混淆处理对文件进行加密的方法,所述方法包括:
读取待加密的n个目标文件,n为正整数,n>1;
对第i个所述目标文件进行分片处理,得到m个文件分片,每个所述文件分片对应第i个所述目标文件的一部分,i和m为正整数,1≤i≤n,m>1;
分别建立n个虚拟文件,第i个所述虚拟文件与第i个所述目标文件的文件名相同;
获取n个所述目标文件的所有文件分片,将每个所述文件分片随机分配给n个所述虚拟文件中的一个;
记录各个所述文件分片的虚拟信息,所述虚拟信息用于指示所述文件分片在所分配的虚拟文件中的位置信息;
根据所述虚拟信息,将属于第i个所述虚拟文件的各个文件分片写入到第i个所述虚拟文件中,得到与所述n个目标文件对应的加密后的n个虚拟文件。
第二方面,提供了一种利用混淆处理对文件进行加密的装置,所述装置包括:
第一确定模块,用于读取待加密的n个目标文件,n为正整数,n>1;
分片模块,用于对第i个所述目标文件进行分片处理,得到m个文件分片,每个所述文件分片对应第i个所述目标文件的一部分,i和m为正整数,1≤i≤n,m>1;
建立模块,用于分别建立n个虚拟文件,第i个所述虚拟文件与第i个所述目标文件的文件名相同;
分配模块,用于获取n个所述目标文件的所有文件分片,将每个所述文件分片随机分配给n个所述虚拟文件中的一个;
记录模块,用于记录各个所述文件分片的虚拟信息,所述虚拟信息用于指示所述文件分片在所分配的虚拟文件中的位置信息;
写入模块,用于根据所述虚拟信息,将属于第i个所述虚拟文件的各个文件分片写入到第i个所述虚拟文件中,得到与所述n个目标文件对应的加密后的n个虚拟文件。
第三方面,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可以在处理器上运行的计算机程序,处理器执行程序时实现以下步骤:
读取待加密的n个目标文件,n为正整数,n>1;
对第i个所述目标文件进行分片处理,得到m个文件分片,每个所述文件分片对应第i个所述目标文件的一部分,i和m为正整数,1≤i≤n,m>1;
分别建立n个虚拟文件,第i个所述虚拟文件与第i个所述目标文件的文件名相同;
获取n个所述目标文件的所有文件分片,将每个所述文件分片随机分配给n个所述虚拟文件中的一个;
记录各个所述文件分片的虚拟信息,所述虚拟信息用于指示所述文件分片在所分配的虚拟文件中的位置信息;
根据所述虚拟信息,将属于第i个所述虚拟文件的各个文件分片写入到第i个所述虚拟文件中,得到与所述n个目标文件对应的加密后的n个虚拟文件。
第四方面,提供了一种计算机可读介质,该计算机可读介质存储用于实现上述第一方面所提供的利用混淆处理对文件进行加密的方法的指令。
本发明实施例提供的技术方案带来的有益效果是:
通过将至少两个待加密的目标文件分割成若干个文件分片,然后建立与目标文件数量相同、名称相同的至少两个虚拟文件,然后将各个文件分片随机分配给各个虚拟文件,并确定出文件分片在虚拟文件中的位置信息,分别将各个文件分片写入对应的虚拟文件中的对应位置;由于一个虚拟文件中包含多个目标文件的文件分片,因此混淆后的虚拟文件不是对应单一的功能,破解难度提高,另外,由于混淆前后的文件数量相同,单个虚拟文件不会过大,便于下载和传输,并且由于混淆前后的文件名称相同,当其他功能模块需要加载某一目标文件时,功能模块中的存储的文件名称均是存在的,因此功能模块不需要对程序中的文件名称进行修改,从而使得混淆处理不影响其他功能模块的使用。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一个实施例提供的对单个文件进行混淆的示意图;
图2是本发明另一个实施例提供的对单个文件进行混淆的示意图;
图3是本发明一个实施例提供的将多个文件混淆为一个文件的示意图;
图4是本发明另一个实施例提供的将多个文件混淆为一个文件的示意图;
图5是本发明一个实施例提供的一种利用混淆处理对文件进行加密的方法的方法流程图;
图6是本发明另一个实施例提供的一种利用混淆处理对文件进行加密的方法的方法流程图;
图7是本发明一个实施例提供的读取目标文件的示意图;
图8是本发明一个实施例提供的分片处理的示意图;
图9是本发明一个实施例提供的分片集合的示意图;
图10是本发明一个实施例提供的建立虚拟文件的示意图;
图11是本发明一个实施例提供的随机分配文件分片的示意图;
图12是本发明一个实施例提供的写入虚拟文件名的示意图;
图13是本发明一个实施例提供的写入位置信息的示意图;
图14是本发明一个实施例提供的生成分片记录表的示意图;
图15是本发明一个实施例提供的写入分片记录表的示意图;
图16是本发明一个实施例提供的生成混淆文件的示意图;
图17是本发明一个实施例提供的一种利用混淆处理对文件进行加密的方法的示意图;
图18是本发明一个实施例提供的一种利用混淆处理对文件进行加密的装置的结构方框图;
图19是本发明一个实施例提供的终端的结构方框图;
图20是本发明一个实施例提供的服务器的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
文件的混淆处理是对文件进行拆分重组以实现对文件的加密的技术。
相关技术中文件的混淆处理主要有两种方式:一种是对单个文件进行混淆,另一种是将多个文件通过混淆处理得到一个大的混淆文件。
示例性的,结合参考图1,图1是对单个文件的混淆进行示意。如图1所示,第一文件101经过混淆处理102得到第一混淆文件103,第二文件104经过混淆处理102得到第二混淆文件105,第三文件106经过混淆处理102得到第三混淆文件107。由此可知,不同文件的混淆处理过程是互相独立的。结合参考图2,对于文件110,将文件110分割成第一文件分片111、第二文件分片112和第三文件分片113,然后对第一文件分片111、第二文件分片112和第三文件分片113的顺序进行重组,示例性的,按照第三文件分片113、第一文件分片111、第二文件分片112的顺序重组,重组得到的文件为混淆文件120。尽管混淆文件120中包含的内容是乱序的,但混淆文件120依然包含文件110的所有内容,也就是说,混淆文件120依然对应文件110的功能。
在一种可能的实现中,文件110的文件名描述出该文件对应的功能,比如:文件名称为木马病毒库.def(后缀名为.def的文件是模块定义类文件),则该文件为木马病毒库文件,经过混淆处理的混淆文件120的文件名称不变。若非法用户想要去除木马病毒库这个功能模块,则可以直接将木马病毒库.def删除,从而直接去除该文件对应的功能模块,以达到非法入侵的目的。
在另一种可能的实现中,文件110的文件名称不描述具体的功能,只用来区分不同的文件,比如:文件名称为A.def,混淆处理后的混淆文件120的文件名称不变。由于混淆后的混淆文件120依然对应文件110的完整功能,非法用户通过删除文件A.def,然后检查哪个功能模块不能使用,便可以确定出A.def对应的功能模块,从而快速破解文件110的作用。
因此,对单个文件进行混淆处理得到的混淆文件容易被破解,并且由于文件对应单一功能,通过直接删除混淆文件即可去除对应的功能模块。
示例性的,结合参考图3,图3是对多个文件混淆为一个文件进行示意。如图3所示,第一文件131、第二文件132和第三文件133同时进行混淆处理134,得到混淆文件135。混淆文件135对应第一文件131、第二文件132和第三文件133的全部内容。结合参考图4,第一文件131被分割为第一文件分片141和第二文件分片142,第二文件132被分割为第三文件分片143和第四文件分片144,第三文件133被分割为第五文件分片145和第六文件分片146。将第一文件分片141、第二文件分片142、第三文件分片143、第四文件分片144、第五文件分片145和第六文件分片146进行混淆处理134,得到的混淆文件135是对第一文件分片141、第二文件分片142、第三文件分片143、第四文件分片144、第五文件分片145和第六文件分片146进行重组得到的,示例性的,混淆文件135中的分片排列顺序为:第三文件分片143、第五文件分片145、第一文件分片141、第二文件分片142、第六文件分片146和第四文件分片144。
由于混淆文件135是将多个文件混淆为一个文件,因此文件较大,不利于文件的下载和传输,比如,用户需要下载第一文件131时,依然需要下载混淆文件135,从而浪费了带宽资源。另外,文件在混淆前对应各自的文件名称,但混淆后原来的文件名称丢失,从而造成部分信息的丢失,比如:文件A.def、文件B.def和文件C.def混淆得到混淆文件ABC.def,文件名为A.def、B.def、C.def的文件则不存在,增加了一个文件名为ABC.def的文件。
另外,由于其他功能模块可能需要加载某个文件,但由于其他功能模块中的程序定义的是加载文件A.def,由于混淆后文件A.def不存在,因此其他功能模块无法加载文件A.def。其他功能模块若要正常调用文件,则需要对其他功能模块中的程序进行修改,比如,原来是加载A.def,修改为加载ABC.def。
因此,将多个文件混淆为一个大的混淆文件,不仅不利于下载和传输,还需要修改相关的其他功能模块,实施成本较高。
图5是本发明一个实施例提供的一种利用混淆处理对文件进行加密的方法的方法流程图,该方法应用在终端或服务器中,可选的,终端可以包括智能手机、平板电脑、膝上型便携计算机和台式计算机等。如图5所示,该方法可以包括:
步骤201,读取待加密的n个目标文件,n为正整数,n>1。
目标文件是指用于进行混淆处理的文件。
由于利用混淆处理的方式对文件进行加密,本实施例中使用的混淆处理方式是基于多个文件实现,因此首先读取待加密的多个目标文件。
可选的,在实际实现时,目标文件可以是不同类型的文件,比如:将证书类文件和病毒库文件进行混淆,证书类文件能够帮助进行身份验证,病毒库文件能够对电脑病毒进行识别。通过确定不同类型的目标文件进行混淆,使得最终得到的混淆文件更具迷惑性,从而提高破解的难度。
可选的,将n个目标文件组成一个文件集合。当多个文件属于同一文件集合,表示这多个文件需要一起进行混淆处理。
步骤202,对第i个目标文件进行分片处理,得到m个文件分片,每个文件分片第i个目标文件的一部分,i和m为正整数,1≤i≤n,m>1。
使用预定分割工具对确定出的每个目标文件进行分片处理,每个目标文件至少分为两个文件分片。
可选的,对于目标文件的划分是基于目标文件的字节大小,比如:目标文件包含23个字节,划分的第一个文件分片对应第1~10字节,第二个文件分片对应第11~20字节,第三个文件分片对应第21~23字节。
可选的,不同文件分片的大小可以相同,可以不同。
可选的,不同目标文件划分得到的文件分片的数量可以相同,可以不同。
可选的,将第i个目标文件分片处理得到的m个文件分片组成第i个分片集合,同一个分片集合中的文件分片属于同一个目标文件。
可选的,将n个目标文件对应的n个分片集合合并成一个大的分片集合。
步骤203,分别建立n个虚拟文件,第i个虚拟文件与第i个目标文件的文件名相同。
分别建立与n个目标文件的文件名相同的n个虚拟文件。
虚拟文件用于承载混淆后的文件分片。
建立n个虚拟文件的目的是为了使混淆后的文件大小与原来近似,避免单个文件过大造成传输和下载困难的问题。
n个虚拟文件与n个目标文件的文件名相同,是为了使其他功能模块加载目标文件时,依然能够调用到对应的文件,从而使得其他功能模块无需对程序进行修改,节省了实施成本。
可选的,将建立的n个虚拟文件组成一个虚拟文件集合。
步骤204,获取n个目标文件的所有文件分片,将每个文件分片随机分配给n个虚拟文件中的一个。
可选的,对应步骤202,当n个目标文件的文件分片组成一个大的分片集合时,依次从分片集合中获取一个文件分片,随机分配给n个虚拟文件中的一个。
可选的,在其他可能的实现方式中,将分片集合中的文件分片随机划分为n份,然后将每一份随机分配给n个虚拟文件中的一个。
步骤205,记录各个文件分片的虚拟信息,虚拟信息用于指示文件分片在所分配的虚拟文件中的位置信息。
在全部文件分片被分配完毕后,确定每个文件分片对应的虚拟文件以及在虚拟文件中的位置。
可选的,虚拟信息可以用虚拟文件名称+起始字节+终止字节来表示。
步骤206,根据虚拟信息,将属于第i个虚拟文件的各个文件分片写入到第i个虚拟文件中,得到与n个目标文件对应的加密后的n个虚拟文件。
在确定出虚拟信息后,根据确定出的位置信息,将文件分片写入到所分配的虚拟文件中的对应位置。
在n个目标文件的所有文件分片全部写入完毕后,得到的n个目标文件即为对n个虚拟文件加密后的文件。
综上所述,本发明实施例提供的文件混淆方法,通过将至少两个待加密的目标文件分割成若干个文件分片,然后建立与目标文件数量相同、名称相同的至少两个虚拟文件,然后将各个文件分片随机分配给各个虚拟文件,并确定出文件分片在虚拟文件中的位置信息,分别将各个文件分片写入对应的虚拟文件中的对应位置;由于一个虚拟文件中包含多个目标文件的文件分片,因此混淆后的虚拟文件不是对应单一的功能,破解难度提高,另外,由于混淆前后的文件数量相同,单个虚拟文件不会过大,便于下载和传输,并且由于混淆前后的文件名称相同,当其他功能模块需要加载某一目标文件时,功能模块中的存储的文件名称均是存在的,因此功能模块不需要对程序中的文件名称进行修改,从而使得混淆处理不影响其他功能模块的使用。
图6是本发明另一个实施例提供的一种利用混淆处理对文件进行加密的方法的方法流程图,该方法应用在终端或服务器中,可选的,终端可以包括智能手机、平板电脑、膝上型便携计算机和台式计算机等。如图6所示,该方法可以包括:
步骤301,读取待加密的n个目标文件,n为正整数,n>1。
目标文件是指用于进行混淆处理的文件。
由于利用混淆处理的方式对文件进行加密,本实施例中使用的混淆处理方式是基于多个文件实现,因此首先读取待加密的多个目标文件。
可选的,在实际实现时,目标文件可以是不同类型的文件,比如:将证书类文件和病毒库文件进行混淆,证书类文件能够帮助进行身份验证,病毒库文件能够对电脑病毒进行识别。通过确定不同类型的目标文件进行混淆,使得最终得到的混淆文件更具迷惑性,从而提高破解的难度。
可选的,将n个目标文件组成一个文件集合。当多个文件属于同一文件集合,表示这多个文件需要一起进行混淆处理。
结合参考图7,示例性的,图7中读取待加密的两个目标文件,分别是第一目标文件401和第二目标文件402,其中,第一目标文件401的文件名为A.def,第二目标文件402的文件名为B.def,文件A.def的大小为23字节,文件B.def的大小为105字节。
步骤302,对第i个目标文件进行分片处理,得到m个文件分片,每个文件分片对应第i个目标文件的一部分,i和m为正整数,1≤i≤n,m>1。
使用预定分割工具对确定出的每个目标文件进行分片处理,每个目标文件至少分为两个文件分片。
可选的,对于目标文件的划分是基于目标文件的字节大小,比如:目标文件包含23个字节,划分的第一个文件分片对应第1~10字节,第二个文件分片对应第11~20字节,第三个文件分片对应第21~23字节。
可选的,不同文件分片的大小可以相同,可以不同。
可选的,不同目标文件划分得到的文件分片的数量可以相同,可以不同。
可选的,将第i个目标文件分片处理得到的m个文件分片组成第i个分片集合,同一个分片集合中的文件分片属于同一个目标文件。
结合参考图8,第一目标文件401(A.def)经过分片处理得到第一文件分片403、第二文件分片404和第三文件分片405,第二目标文件402(B.def)经过分片处理得到第四文件分片406、第五文件分片407和第六文件分片408。
其中,第一文件分片403对应第一目标文件401(A.def)的第1~10字节,第二文件分片404对应第一目标文件401(A.def)的第11~20字节,第三文件分片405对应第一目标文件401(A.def)的第21~23字节,第四文件分片406对应第二目标文件402(B.def)的第1~50字节,第五文件分片407对应第二目标文件402(B.def)的第51~100字节,第六文件分片408对应第二目标文件402(B.def)的第101~105字节。
可选的,将n个目标文件对应的n个分片集合合并成一个大的分片集合。
结合参考图9,将第一文件分片403、第二文件分片404、第三文件分片405、第四文件分片406、第五文件分片407和第六文件分片408组成一个大的分片集合。示例性的,分片集合中的文件分片随机排序,如图9所示,分片集合中依次包括第三文件分片405、第六文件分片408、第一文件分片403、第二文件分片404、第四文件分片406和第五文件分片407。
步骤303,分别建立n个虚拟文件,第i个虚拟文件与第i个目标文件的文件名相同。
分别建立与n个目标文件的文件名相同的n个虚拟文件。
虚拟文件用于承载混淆后的文件分片。刚建立的虚拟文件相当于空白的文件,文件中还未存储任何内容。
建立n个虚拟文件的目的是为了使混淆后的文件大小与原来近似,避免单个文件过大造成传输和下载困难的问题。
n个虚拟文件与n个目标文件的文件名相同,是为了使其他功能模块加载目标文件时,依然能够调用到对应的文件,从而使得其他功能模块无需对程序进行修改,节省了实施成本。
可选的,将建立的n个虚拟文件组成一个虚拟文件集合。
结合参考图10,图10中建立两个虚拟文件,分别是第一虚拟文件409和第二虚拟文件410,其中,第一虚拟文件409的文件名为A.def,第二虚拟文件410的文件名为B.def。
步骤304,获取n个目标文件的所有文件分片,将每个文件分片随机分配给n个虚拟文件中的一个。
可选的,对应步骤302,当n个目标文件的文件分片组成一个大的分片集合时,依次从分片集合中获取一个文件分片,随机分配给n个虚拟文件中的一个。
可选的,在其他可能的实现方式中,将分片集合中的文件分片随机划分为n份,然后将每一份随机分配给n个虚拟文件中的一个。
结合参考图11,经过随机分配后,第一虚拟文件409中依次包括第三文件分片405、第一文件分片403和第四文件分片406,第二虚拟文件410中依次包括第六文件分片408、第二文件分片404和第五文件分片407。
步骤305,对于每个文件分片,确定文件分片所分配的虚拟文件。
结合参考图12,对于第三文件分片405、第一文件分片403和第四文件分片406,分别写入第一虚拟文件409的文件名A.def;对于第六文件分片408、第二文件分片404和第五文件分片407,分别写入第二虚拟文件410的文件名B.def。
步骤306,确定文件分片在虚拟文件中的起始位置与终止位置。
结合参考图13,第三文件分片405对应第一虚拟文件409的第101~103字节,第一文件分片403对应第一虚拟文件409的第104~113字节,第四文件分片406对应第一虚拟文件409的第114~163字节,第六文件分片408对应第二虚拟文件410的第101~105字节,第二文件分片404对应第二虚拟文件410的第106~115字节,第五文件分片407对应第二虚拟文件410的第116~165字节。对于各个文件分片,分别将每个文件分片对应的字节数写入到文件分片中。
需要说明的是,虚拟文件的头部预留部分字节用于存储文件分片的虚拟信息,比如:第一虚拟文件的第1~100字节预留用来存储文件分片的虚拟信息。
可选的,在确定文件分片在虚拟文件中的起始位置与终止位置之前,还包括S1,将第i个虚拟文件中的文件分片按照预定规则排序。
可选的,预定规则包括分片文件从小到大的顺序和分片文件从大到小的顺序中的一种。
在对第i个虚拟文件中的文件分片排序之后,还包括S2,根据第i个虚拟文件的各个文件分片的大小,按照各个文件分片的排序,确定出每个文件分片在第i个虚拟文件中的起始位置和终止位置。
结合参考图13,图13中的文件分片按照从小到大的顺序排列。
步骤307,将虚拟文件的名称、起始位置和终止位置确定为文件分片的虚拟信息。
可选的,虚拟信息还可以是虚拟文件的名称、起始位置和文件分片的大小。
步骤308,将虚拟信息记录到文件分片中。
将虚拟信息记录到文件分片中之后,在获取到每一个文件分片时,即可同时获取文件分片对应的虚拟信息。
记录虚拟信息的文件分片请参见图13。比如:第三文件分片405对应第一目标文件401的第21~23字节,对应第一虚拟文件409的第101~103字节。
步骤309,遍历第i个目标文件的全部文件分片。
第i个目标文件被划分为m个文件分片,读取第i个目标文件的全部文件分片。
步骤310,获取各个文件分片的虚拟信息。
由于文件分片中写入文件分片对应的虚拟信息,在读取文件分片时,可以获取到文件分片的虚拟信息。
步骤311,根据各个文件分片的虚拟信息生成第i个分片记录表,第i个分片记录表中的虚拟信息按照对应的文件分片的先后顺序排列。
文件分片在划分时有先后顺序,先后顺序是指文件分片在目标文件中对应的字节位置先后。
同一个目标文件的所有文件分片的虚拟信息按照文件分片的先后顺序排列,组成分片记录表。
可选的,虚拟信息在组成分片记录表时需要进行转换,比如:确定某一文件分片对应目标文件的第几片,对应虚拟文件的第几片,然后记录分别记录文件分片在目标文件中的字节位置以及在虚拟文件中的字节位置。
结合参考图14,将第一目标文件401的第一文件分片403、第二文件分片404和第三文件分片405按序排列,将第一文件分片403、第二文件分片404和第三文件分片405的虚拟信息组成第一分片记录表411;将第二目标文件402的第四文件分片406、第五文件分片407和第六文件分片408按序排列,将第四文件分片406、第五文件分片407和第六文件分片408的虚拟信息组成第二分片记录表412。
步骤312,根据虚拟信息,将属于第i个虚拟文件的各个文件分片写入到第i个虚拟文件中,将第i个分片记录表写入第i个虚拟文件中,得到与n个目标文件对应的加密后的n个虚拟文件。
可选的,将第i个分片记录表写入第i个虚拟文件的头部。
结合参考图15,示例性的,第一分片记录表411被写入第一虚拟文件409的头部,即写入第三文件分片405之前,第二分片记录表412被写入第二虚拟文件410的头部,即写入第六文件分片408之前。
可选的,分片记录表中每个文件分片分为三部分记录:第一部分是文件分片所属的目标文件的名称以及所属的虚拟文件的名称,第二部分是文件分片在所属目标文件中的大小和位置,第三部分是文件分片在所属虚拟文件中的大小和位置。
结合参考图16,在将文件分片写入到虚拟文件之后,得到第一虚拟文件409和第二虚拟文件410。
第一虚拟文件409的文件名为A.def,第二虚拟文件410的文件名为B.def。
第一虚拟文件409中存储第一分片记录表411、第三文件分片405、第一文件分片403和第四文件分片406,第二虚拟文件410的文件名为B.def,第二虚拟文件410中存储第二分片记录表412、第六文件分片408、第二文件分片404和第五文件分片407。
在n个目标文件的所有文件分片全部写入完毕后,得到的n个目标文件即为对n个虚拟文件加密后的文件。
在混淆处理后的文件存储完毕后,当需要使用某个目标文件或某个目标文件中的部分字节时,需要读取对应的目标文件,对于混淆后的文件的读取请参见步骤313至步骤318。
步骤313,在读取第i个目标文件时,获取第i个虚拟文件。
第i个目标文件与第i个虚拟文件的名称相同,因此在需要读取第i个目标文件时,读取的是第i个虚拟文件。
步骤314,读取第i个虚拟文件中的第i个分片记录表。
由于第i个分片记录表存储在第i个虚拟文件中,在读取第i个虚拟文件时,能够读取到第i个分片记录表。
由于第i个分片记录表是按照第i个目标文件的文件分片的先后顺序存储了文件分片对应的虚拟信息,因此根据第i个分片记录表可以确定文件分片实际存储的位置。
步骤315,根据需要读取的字节的位置,确定字节在第i个目标文件中对应的文件分片。
可选的,需要读取的字节可以是目标文件的全部字节,也可以是目标文件的部分几个字节,还可以是目标文件的一个字节。
步骤316,从第i个分片记录表中,查找文件分片的虚拟信息。
文件分片的虚拟信息记录文件分片实际存储的虚拟文件的名称以及该文件分片在虚拟文件中的位置信息。根据步骤315确定出的文件分片,可以快速查找到文件分片对应的虚拟信息。
步骤317,根据虚拟信息,确定存储文件分片的虚拟文件以及文件分片在虚拟文件中的位置信息。
步骤318,到存储文件分片的虚拟文件中读取该字节。
根据位置信息确定需要读取的字节所存储的实际位置,读取该实际位置中存储的内容,即读取需要读取的字节中的内容。
对于混淆后的文件的读取过程,结合参考图16,以读取A.def的第19个字节为例,首先读取第一虚拟文件409的头部,读取第一分片记录表411可知A.def的第一文件分片403包括10字节,第二文件分片404包括10字节,因此,第19个字节在第二文件分片404中,由于A.def的第二文件分片404存储在第二虚拟文件410的第106~115字节,则第二虚拟文件410的第106~115字节对应第二文件分片404,读取第二文件分片404,第二文件分片404的第9个字节即A.def的第19个字节。
另外,对于本实施例所描述的文件混淆方法,还可以参考图17的示意图。如图17所示,读取待加密的第一目标文件501和第二目标文件502,第一目标文件501的文件名为A.def,第二目标文件502的文件名为B.def。首先,将第一目标文件501进行分片处理得到第一分片503和第二分片504,第一分片503的名称为A.def第一片,第二分片504的名称为A.def第二片,将第二目标文件502进行分片处理得到第三分片505和第四分片506,第三分片505的名称为B.def第一片,第四分片506的名称为B.def第二片。将第一分片503、第二分片504、第三分片505和第四分片506整理为分片集合507;然后将分片集合507中的第三分片505、第二分片504分配给建立的第一虚拟文件508,将分片集合507中的第一分片503、第四分片506分配给建立的第二虚拟文件509,第一虚拟文件508的文件名为A.def,与第一目标文件501的文件名相同,第二虚拟文件509的文件名为B.def,与第二目标文件502的文件名相同;分配完文件分片后,得到每个文件分片在虚拟文件中的信息,将第一目标文件501的各个文件分片的信息填充至第一虚拟文件508的信息头部510中,将第二目标文件502的各个文件分片的信息填充至第二虚拟文件509的信息头部511中;最后,将第三分片505和第二分片504的分片内容写入第一虚拟文件508中,将第一分片503和第四分片506的分片内容写入第二虚拟文件509中,得到文件名为A.def的第一虚拟文件508和文件名为B.def的第二虚拟文件509。
综上所述,本发明实施例提供的文件混淆方法,通过将至少两个待加密的目标文件分割成若干个文件分片,然后建立与目标文件数量相同、名称相同的至少两个虚拟文件,然后将各个文件分片随机分配给各个虚拟文件,并确定出文件分片在虚拟文件中的位置信息,分别将各个文件分片写入对应的虚拟文件中的对应位置;由于一个虚拟文件中包含多个目标文件的文件分片,因此混淆后的虚拟文件不是对应单一的功能,破解难度提高,另外,由于混淆前后的文件数量相同,单个虚拟文件不会过大,便于下载和传输,并且由于混淆前后的文件名称相同,当其他功能模块需要加载某一目标文件时,功能模块中的存储的文件名称均是存在的,因此功能模块不需要对程序中的文件名称进行修改,从而使得混淆处理不影响其他功能模块的使用。
针对步骤305至步骤308,通过将文件分片所在的虚拟文件的名称、起始位置和终止位置记录到文件分片中,可以确定出每个文件分片被分配存储的虚拟文件中的位置。
针对步骤309至步骤312,通过遍历目标文件的所有文件分片,根据文件分片的虚拟信息建立分片记录表,并将分片记录表写入名称相同的虚拟文件中,从而根据虚拟文件可以确定出原本的目标文件中各个文件分片的存储位置。
针对步骤313至步骤318,通过读取与目标文件名称相同的虚拟文件中存储的分片记录表,可以确定出目标文件的文件分片实际存储的位置,从而可以根据所要读取的字节位置到对应的文件分片中读取。
图18是本发明一个实施例提供的一种利用混淆处理对文件进行加密的装置的结构方框图,该装置应用在终端或服务器中,可选的,终端可以包括智能手机、平板电脑、膝上型便携计算机和台式计算机等。如图18所示,该装置可以包括:第一确定模块610、分片模块620、建立模块630、分配模块640、记录模块650和写入模块660。
第一确定模块610,用于实现上述步骤201、步骤301以及其他任意隐含或公开的与确定相关的功能。
分片模块620,用于实现上述步骤202、步骤302以及其他任意隐含或公开的与分片相关的功能。
建立模块630,用于实现上述步骤203、步骤303以及其他任意隐含或公开的与建立相关的功能。
分配模块640,用于实现上述步骤204、步骤304以及其他任意隐含或公开的与分配相关的功能。
记录模块650,用于实现上述步骤205以及其他任意隐含或公开的与记录相关的功能。
写入模块660,用于实现上述步骤206、步骤312以及其他任意隐含或公开的与写入相关的功能。
可选的,记录模块650,包括:第一确定单元、第二确定单元、第三确定单元和记录单元。
第一确定单元,用于实现上述步骤305以及其他任意隐含或公开的与获取相关的功能。
第二确定单元,用于实现上述步骤306、步骤S2以及其他任意隐含或公开的与确定相关的功能。
第三确定单元,用于实现上述步骤307以及其他任意隐含或公开的与确定相关的功能。
记录单元,用于实现上述步骤308以及其他任意隐含或公开的与记录相关的功能。
可选的,该装置还包括:排序模块、遍历模块、第一获取模块、生成模块、第二获取模块、第一读取模块、第二确定模块、查找模块、第三确定模块、第二读取模块。
排序模块,用于实现上述步骤S1以及其他任意隐含或公开的与排序相关的功能。
遍历模块,用于实现上述步骤309以及其他任意隐含或公开的与遍历相关的功能。
第一获取模块,用于实现上述步骤310以及其他任意隐含或公开的与获取相关的功能。
生成模块,用于实现上述步骤311以及其他任意隐含或公开的与生成相关的功能。
第二获取模块,用于实现上述步骤313以及其他任意隐含或公开的与获取相关的功能。
第一读取模块,用于实现上述步骤314以及其他任意隐含或公开的与读取相关的功能。
第二确定模块,用于实现上述步骤315以及其他任意隐含或公开的与确定相关的功能。
查找模块,用于实现上述步骤316以及其他任意隐含或公开的与查找相关的功能。
第三确定模块,用于实现上述步骤317以及其他任意隐含或公开的与确定相关的功能。
第二读取模块,用于实现上述步骤318以及其他任意隐含或公开的与读取相关的功能。
综上所述,本发明实施例提供的文件混淆装置,通过将至少两个待加密的目标文件分割成若干个文件分片,然后建立与目标文件数量相同、名称相同的至少两个虚拟文件,然后将各个文件分片随机分配给各个虚拟文件,并确定出文件分片在虚拟文件中的位置信息,分别将各个文件分片写入对应的虚拟文件中的对应位置;由于一个虚拟文件中包含多个目标文件的文件分片,因此混淆后的虚拟文件不是对应单一的功能,破解难度提高,另外,由于混淆前后的文件数量相同,单个虚拟文件不会过大,便于下载和传输,并且由于混淆前后的文件名称相同,当其他功能模块需要加载某一目标文件时,功能模块中的存储的文件名称均是存在的,因此功能模块不需要对程序中的文件名称进行修改,从而使得混淆处理不影响其他功能模块的使用。
通过将文件分片所在的虚拟文件的名称、起始位置和终止位置记录到文件分片中,可以确定出每个文件分片被分配存储的虚拟文件中的位置。
通过遍历目标文件的所有文件分片,根据文件分片的虚拟信息建立分片记录表,并将分片记录表写入名称相同的虚拟文件中,从而根据虚拟文件可以确定出原本的目标文件中各个文件分片的存储位置。
通过读取与目标文件名称相同的虚拟文件中存储的分片记录表,可以确定出目标文件的文件分片实际存储的位置,从而可以根据所要读取的字节位置到对应的文件分片中读取。
需要说明的是:上述实施例中提供的利用混淆处理对文件进行加密的装置在加密文件时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将终端或服务器的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的利用混淆处理对文件进行加密的装置与利用混淆处理对文件进行加密的方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
请参见图19所示,其示出了本发明部分实施例中提供的终端的结构方框图。该终端700用于实施上述实施例提供的一种利用混淆处理对文件进行加密的方法。本发明中的终端700可以包括一个或多个如下组成部分:用于执行计算机程序指令以完成各种流程和方法的处理器,用于信息和存储程序指令随机接入存储器(英文:random access memory,简称:RAM)和只读存储器(英文:read-only memory,简称:ROM),用于存储数据和信息的存储器,I/O设备,界面,天线等。具体来讲:
终端700可以包括射频(英文:Radio Frequency,简称:RF)电路710、存储器720、输入单元730、显示单元740、传感器750、音频电路760、无线保真(英文:wireless fidelity,简称:WiFi)模块770、处理器780、电源782、摄像头790等部件。本领域技术人员可以理解,图19中示出的终端结构并不构成对终端的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
下面结合图19对终端700的各个构成部件进行具体的介绍:
RF电路710可用于收发信息或通话过程中,信号的接收和发送,特别地,将基站的下行信息接收后,给处理器780处理;另外,将设计上行的数据发送给基站。通常,RF电路包括但不限于天线、至少一个放大器、收发信机、耦合器、低噪声放大器(英文:Low NoiseAmplifier,简称:LNA)、双工器等。此外,RF电路710还可以通过无线通信与网络和其他设备通信。所述无线通信可以使用任一通信标准或协议,包括但不限于全球移动通讯系统(英文:Global System of Mobile communication,简称GSM)、通用分组无线服务(英文:General Packet Radio Service,简称:GPRS)、码分多址(英文:Code Division MultipleAccess,简称:CDMA)、宽带码分多址(英文:Wideband Code Division Multiple Access,简称:WCDMA)、长期演进(英文:Long Term Evolution,简称:LTE)、电子邮件、短消息服务(英文:Short Messaging Service,简称:SMS)等。
存储器720可用于存储软件程序以及模块,处理器780通过运行存储在存储器720的软件程序以及模块,从而执行终端700的各种功能应用以及数据处理。存储器720可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据终端700的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器720可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
输入单元730可用于接收输入的数字或字符信息,以及产生与终端700的用户设置以及功能控制有关的键信号输入。具体地,输入单元730可包括触控面板731以及其他输入设备732。触控面板731,也称为触摸屏,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触控面板731上或在触控面板731附近的操作),并根据预先设定的程式驱动相应的连接装置。可选的,触控面板731可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器780,并能接收处理器780发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触控面板731。除了触控面板731,输入单元730还可以包括其他输入设备732。具体地,其他输入设备732可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。
显示单元740可用于显示由用户输入的信息或提供给用户的信息以及终端700的各种菜单。显示单元740可包括显示面板741,可选的,可以采用液晶显示器(英文:LiquidCrystal Display,简称:LCD)、有机发光二极管(英文:Organic Light-Emitting Diode,简称:OLED)等形式来配置显示面板741。进一步的,触控面板731可覆盖显示面板741,当触控面板731检测到在其上或附近的触摸操作后,传送给处理器780以确定触摸事件的类型,随后处理器780根据触摸事件的类型在显示面板741上提供相应的视觉输出。虽然在图19中,触控面板731与显示面板741是作为两个独立的部件来实现终端700的输入和输入功能,但是在某些实施例中,可以将触控面板731与显示面板741集成而实现终端700的输入和输出功能。
终端700还可包括至少一种传感器750,比如陀螺仪传感器、磁感应传感器、光传感器、运动传感器以及其他传感器。具体地,光传感器可包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示面板741的亮度,接近传感器可在终端700移动到耳边时,关闭显示面板741和/或背光。作为运动传感器的一种,加速度传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别终端姿态的应用(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;至于终端700还可配置的气压计、湿度计、温度计、红外线传感器等其他传感器,在此不再赘述。
音频电路760、扬声器761,传声器762可提供用户与终端700之间的音频接口。音频电路760可将接收到的音频数据转换后的电信号,传输到扬声器761,由扬声器761转换为声音信号输出;另一方面,传声器762将收集的声音信号转换为电信号,由音频电路760接收后转换为音频数据,再将音频数据输出处理器780处理后,经RF电路710以发送给比如另一终端,或者将音频数据输出至存储器720以便进一步处理。
WiFi属于短距离无线传输技术,终端700通过WiFi模块770可以帮助用户收发电子邮件、浏览网页和访问流式媒体等,它为用户提供了无线的宽带互联网访问。虽然图19示出了WiFi模块770,但是可以理解的是,其并不属于终端700的必须构成,完全可以根据需要在不改变公开的本质的范围内而省略。
处理器780是终端700的控制中心,利用各种接口和线路连接整个终端的各个部分,通过运行或执行存储在存储器720内的软件程序和/或模块,以及调用存储在存储器720内的数据,执行终端700的各种功能和处理数据,从而对终端进行整体监控。可选的,处理器780可包括一个或多个处理单元;优选的,处理器780可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器780中。
终端700还包括给各个部件供电的电源782(比如电池),优选的,电源可以通过电源管理系统与处理器780逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。
摄像头790一般由镜头、图像传感器、接口、数字信号处理器、中央处理单元(英文:Central Processing Unit,简称:CPU)、显示屏幕等组成。其中,镜头固定在图像传感器的上方,可以通过手动调节镜头来改变聚焦;图像传感器相当于传统相机的“胶卷”,是摄像头采集图像的心脏;接口用于把摄像头利用排线、板对板连接器、弹簧式连接方式与终端主板连接,将采集的图像发送给所述存储器720;数字信号处理器通过数学运算对采集的图像进行处理,将采集的模拟图像转换为数字图像并通过接口发送给存储器720。
尽管未示出,终端700还可以包括蓝牙模块等,在此不再赘述。
图20是本发明一个实施例提供的服务器的结构示意图。具体来讲:服务器800包括中央处理单元(英文:Central Processing Unit,简称:CPU)801、包括随机存取存储器(英文:random access memory,简称:RAM)802和只读存储器(英文:read-only memory,简称:ROM)803的系统存储器804,以及连接系统存储器804和中央处理单元801的系统总线805。所述服务器800还包括帮助计算机内的各个器件之间传输信息的基本输入/输出系统(I/O系统)806,和用于存储操作系统813、应用程序814和其他程序模块815的大容量存储设备807。
所述基本输入/输出系统806包括有用于显示信息的显示器808和用于用户输入信息的诸如鼠标、键盘之类的输入设备809。其中所述显示器808和输入设备809都通过连接到系统总线805的输入/输出控制器810连接到中央处理单元801。所述基本输入/输出系统806还可以包括输入输出控制器810以用于接收和处理来自键盘、鼠标、或电子触控笔等多个其他设备的输入。类似地,输入/输出控制器810还提供输出到显示屏、打印机或其他类型的输出设备。
所述大容量存储设备807通过连接到系统总线805的大容量存储控制器(未示出)连接到中央处理单元801。所述大容量存储设备807及其相关联的计算机可读介质为服务器800提供非易失性存储。也就是说,所述大容量存储设备807可以包括诸如硬盘或者只读光盘(英文:Compact Disc Read-Only Memory,简称:CD-ROM)驱动器之类的计算机可读介质(未示出)。
不失一般性,所述计算机可读介质可以包括计算机存储介质和通信介质。计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其他数据等信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括RAM、ROM、可擦除可编程只读存储器(英文:erasable programmable read-only memory,简称:EPROM)、电可擦除可编程只读存储器(英文:electrically erasable programmableread-only memory,简称:EEPROM)、闪存或其他固态存储其技术,CD-ROM、数字通用光盘(英文:Digital Versatile Disc,简称:DVD)或其他光学存储、磁带盒、磁带、磁盘存储或其他磁性存储设备。当然,本领域技术人员可知所述计算机存储介质不局限于上述几种。上述的系统存储器804和大容量存储设备807可以统称为存储器。
根据本发明的各种实施例,所述服务器800还可以通过诸如因特网等网络连接到网络上的远程计算机运行。也即服务器800可以通过连接在所述系统总线805上的网络接口单元811连接到网络812,或者说,也可以使用网络接口单元811来连接到其他类型的网络或远程计算机系统(未示出)。
本发明实施例还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中的存储器中所包含的计算机可读存储介质;也可以是单独存在,未装配入终端中的计算机可读存储介质。该计算机可读存储介质存储有一个或者一个以上程序,该一个或者一个以上程序被一个或者一个以上的处理器用来执行上述利用混淆处理对文件进行加密的方法。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (10)

1.一种利用混淆处理对文件进行加密的方法,其特征在于,所述方法包括:
读取待加密的n个目标文件,n为正整数,n>1;
对第i个所述目标文件进行分片处理,得到m个文件分片,每个所述文件分片对应第i个所述目标文件的一部分,i和m为正整数,1≤i≤n,m>1;
分别建立n个虚拟文件,第i个所述虚拟文件与第i个所述目标文件的文件名相同;
获取n个所述目标文件的所有文件分片,将每个所述文件分片随机分配给n个所述虚拟文件中的一个;
记录各个所述文件分片的虚拟信息,所述虚拟信息用于指示所述文件分片在所分配的虚拟文件中的位置信息;
根据所述虚拟信息,将属于第i个所述虚拟文件的各个文件分片写入到第i个所述虚拟文件中,得到与所述n个目标文件对应的加密后的n个虚拟文件。
2.根据权利要求1所述的方法,其特征在于,所述记录各个所述文件分片的虚拟信息,包括:
对于每个所述文件分片,确定所述文件分片所分配的虚拟文件;
确定所述文件分片在所述虚拟文件中的起始位置与终止位置;
将所述虚拟文件的名称、所述起始位置和所述终止位置确定为所述文件分片的虚拟信息;
将所述虚拟信息记录到所述文件分片中。
3.根据权利要求2所述的方法,其特征在于,所述确定所述文件分片在所述虚拟文件中的起始位置与终止位置之前,还包括:
将第i个所述虚拟文件中的文件分片按照预定规则排序,所述预定规则包括分片文件从小到大的顺序和分片文件从大到小的顺序中的一种;
所述确定所述文件分片在所述虚拟文件中的起始位置与终止位置,包括:
根据第i个所述虚拟文件的各个文件分片的大小,按照各个所述文件分片的排序,确定出每个所述文件分片在第i个所述虚拟文件中的起始位置和终止位置。
4.根据权利要求1所述的方法,其特征在于,所述记录各个所述文件分片的虚拟信息之后,还包括:
遍历第i个所述目标文件的全部文件分片;
获取各个所述文件分片的虚拟信息;
根据各个所述文件分片的虚拟信息生成第i个分片记录表,第i个所述分片记录表中的虚拟信息按照第i个所述目标文件中对应的所述文件分片的先后顺序排列;
所述将属于第i个所述虚拟文件的各个文件分片写入到第i个所述虚拟文件中之后,还包括:
将第i个所述分片记录表写入第i个所述虚拟文件中。
5.根据权利要求4所述的方法,其特征在于,所述将第i个所述分片记录表写入第i个所述虚拟文件中之后,还包括:
在读取第i个所述目标文件时,获取第i个所述虚拟文件;
读取第i个所述虚拟文件中的第i个所述分片记录表;
根据需要读取的字节的位置,确定所述字节在第i个所述目标文件中对应的文件分片;
从第i个所述分片记录表中,查找所述文件分片的虚拟信息;
根据所述虚拟信息,确定存储所述文件分片的虚拟文件以及所述文件分片在所述虚拟文件中的位置信息;
到存储所述文件分片的虚拟文件中读取所述字节。
6.一种利用混淆处理对文件进行加密的装置,其特征在于,所述装置包括:
第一确定模块,用于读取待加密的n个目标文件,n为正整数,n>1;
分片模块,用于对第i个所述目标文件进行分片处理,得到m个文件分片,每个所述文件分片对应第i个所述目标文件的一部分,i和m为正整数,1≤i≤n,m>1;
建立模块,用于分别建立n个虚拟文件,第i个所述虚拟文件与第i个所述目标文件的文件名相同;
分配模块,用于获取n个所述目标文件的所有文件分片,将每个所述文件分片随机分配给n个所述虚拟文件中的一个;
记录模块,用于记录各个所述文件分片的虚拟信息,所述虚拟信息用于指示所述文件分片在所分配的虚拟文件中的位置信息;
写入模块,用于根据所述虚拟信息,将属于第i个所述虚拟文件的各个文件分片写入到第i个所述虚拟文件中,得到与所述n个目标文件对应的加密后的n个虚拟文件。
7.根据权利要求6所述的装置,其特征在于,所述记录模块,包括:
第一确定单元,用于对于每个所述文件分片,确定所述文件分片所分配的虚拟文件;
第二确定单元,用于确定所述文件分片在所述虚拟文件中的起始位置与终止位置;
第三确定单元,用于将所述第一确定单元获取的所述虚拟文件的名称、所述第二确定单元确定的所述起始位置和所述终止位置确定为所述文件分片的虚拟信息;
记录单元,用于将所述第三确定单元确定的所述虚拟信息记录到所述文件分片中。
8.根据权利要求7所述的装置,其特征在于,所述装置还包括:
排序模块,用于将第i个所述虚拟文件中的文件分片按照预定规则排序,所述预定规则包括分片文件从小到大的顺序和分片文件从大到小的顺序中的一种;
所述第二确定单元,还用于:
根据第i个所述虚拟文件的各个文件分片的大小,按照各个所述文件分片的排序,确定出每个所述文件分片在第i个所述虚拟文件中的起始位置和终止位置。
9.根据权利要求6所述的装置,其特征在于,所述装置还包括:
遍历模块,用于遍历第i个所述目标文件的全部文件分片;
第一获取模块,用于获取各个所述文件分片的虚拟信息;
生成模块,用于根据所述第一获取模块获取的各个所述文件分片的虚拟信息生成第i个分片记录表,第i个所述分片记录表中的虚拟信息按照第i个所述目标文件中对应的所述文件分片的先后顺序排列;
所述写入模块,还用于:
将所述生成模块生成的第i个所述分片记录表写入第i个所述虚拟文件中。
10.根据权利要求9所述的装置,其特征在于,所述装置还包括:
第二获取模块,用于在读取第i个所述目标文件时,获取第i个所述虚拟文件;
第一读取模块,用于读取第i个所述虚拟文件中的第i个所述分片记录表;
第二确定模块,用于根据需要读取的字节的位置,确定所述字节在第i个所述目标文件中对应的文件分片;
查找模块,用于从第i个所述分片记录表中,查找所述文件分片的虚拟信息;
第三确定模块,用于根据所述查找模块查找到的所述虚拟信息,确定存储所述文件分片的虚拟文件以及所述文件分片在所述虚拟文件中的位置信息;
第二读取模块,用于到存储所述文件分片的虚拟文件中读取所述字节。
CN201710279339.3A 2017-04-25 2017-04-25 一种利用混淆处理对文件进行加密的方法及装置 Active CN107066890B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710279339.3A CN107066890B (zh) 2017-04-25 2017-04-25 一种利用混淆处理对文件进行加密的方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710279339.3A CN107066890B (zh) 2017-04-25 2017-04-25 一种利用混淆处理对文件进行加密的方法及装置

Publications (2)

Publication Number Publication Date
CN107066890A CN107066890A (zh) 2017-08-18
CN107066890B true CN107066890B (zh) 2020-12-25

Family

ID=59603519

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710279339.3A Active CN107066890B (zh) 2017-04-25 2017-04-25 一种利用混淆处理对文件进行加密的方法及装置

Country Status (1)

Country Link
CN (1) CN107066890B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109740371A (zh) * 2018-12-12 2019-05-10 武汉掌游科技有限公司 一种用于安卓sdk资源简易的加密方法及装置
CN109547463B (zh) * 2018-12-14 2023-04-07 平安普惠企业管理有限公司 获取密钥的方法、装置、计算机设备和存储介质
CN113407492B (zh) * 2021-06-18 2024-03-26 中国人民银行清算总中心 文件分片存储、分片文件重组方法及装置、文件保护系统
CN114448663B (zh) * 2021-12-22 2023-09-19 安徽蓝盾光电子股份有限公司 一种环保监测数据加密传输系统及方法

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103279693A (zh) * 2013-05-30 2013-09-04 付弦 一种文件加密方法
CN103778355A (zh) * 2014-01-15 2014-05-07 西北大学 一种基于代码变形的二进制代码混淆方法
CN103955528A (zh) * 2014-05-09 2014-07-30 北京华信博研科技有限公司 写入文件数据的方法、读取文件数据的方法以及装置
CN104503708A (zh) * 2014-12-29 2015-04-08 成都致云科技有限公司 数据散列存储的方法及装置
CN105303123A (zh) * 2015-11-02 2016-02-03 山东大学 一种基于分块混淆的动态数据隐私保护系统及方法
CN106203128A (zh) * 2015-04-30 2016-12-07 宋青见 网页数据加解密方法、装置和系统

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012169753A (ja) * 2011-02-10 2012-09-06 Sony Corp 情報処理装置、および情報処理方法、並びにプログラム

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103279693A (zh) * 2013-05-30 2013-09-04 付弦 一种文件加密方法
CN103778355A (zh) * 2014-01-15 2014-05-07 西北大学 一种基于代码变形的二进制代码混淆方法
CN103955528A (zh) * 2014-05-09 2014-07-30 北京华信博研科技有限公司 写入文件数据的方法、读取文件数据的方法以及装置
CN104503708A (zh) * 2014-12-29 2015-04-08 成都致云科技有限公司 数据散列存储的方法及装置
CN106203128A (zh) * 2015-04-30 2016-12-07 宋青见 网页数据加解密方法、装置和系统
CN105303123A (zh) * 2015-11-02 2016-02-03 山东大学 一种基于分块混淆的动态数据隐私保护系统及方法

Also Published As

Publication number Publication date
CN107066890A (zh) 2017-08-18

Similar Documents

Publication Publication Date Title
CN107786504B (zh) Elf文件发布方法、elf文件校验方法、服务器及终端
CN106850220B (zh) 数据加密方法、数据解密方法及装置
US11057216B2 (en) Protection method and protection system of system partition key data and terminal
CN107066890B (zh) 一种利用混淆处理对文件进行加密的方法及装置
EP3200487B1 (en) Message processing method and apparatus
CN105490919A (zh) 消息撤回方法和装置
CN107154935B (zh) 业务请求方法及装置
CN111064713B (zh) 一种分布式系统中的节点控制方法和相关装置
EP3404538A1 (en) Data processing method, and data processing apparatus
EP3179693B1 (en) Method, apparatus, storage medium and computer program product for establishing a data connection
CN106657165B (zh) 一种网络攻击的防御方法、服务器及终端
CN106843868B (zh) 一种多账号登录的方法、装置以及移动终端
CN106569910B (zh) 数据备份及传输方法及移动终端
US10237291B2 (en) Session processing method and device, server and storage medium
CN111475832B (zh) 一种数据管理的方法以及相关装置
WO2014032559A1 (zh) 下载文件的方法和装置
CN113038434B (zh) 设备注册方法、装置、移动终端和存储介质
CN107423099B (zh) 键码烧写方法、服务器、终端、键码烧写系统及存储介质
CN109472157B (zh) 应用程序数据的存储方法、移动终端以及计算机存储介质
CN104965722A (zh) 一种显示信息的方法及装置
CN107995151B (zh) 登录验证方法、装置及系统
CN108460251B (zh) 运行应用程序的方法、装置及系统
CN106020945B (zh) 快捷项添加方法及装置
CN114860677A (zh) 关于终端设备的文件去冗方法、终端设备及存储介质
US10158896B2 (en) Video channel allocation management method and related device, and communication system

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