CN111683046B - 文件压缩以及获取的方法、装置、设备及存储介质 - Google Patents

文件压缩以及获取的方法、装置、设备及存储介质 Download PDF

Info

Publication number
CN111683046B
CN111683046B CN202010359196.9A CN202010359196A CN111683046B CN 111683046 B CN111683046 B CN 111683046B CN 202010359196 A CN202010359196 A CN 202010359196A CN 111683046 B CN111683046 B CN 111683046B
Authority
CN
China
Prior art keywords
file
information
compressed
character
compression
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
CN202010359196.9A
Other languages
English (en)
Other versions
CN111683046A (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.)
Shenzhen Saiante Technology Service Co Ltd
Original Assignee
Shenzhen Saiante Technology Service 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 Shenzhen Saiante Technology Service Co Ltd filed Critical Shenzhen Saiante Technology Service Co Ltd
Priority to CN202010359196.9A priority Critical patent/CN111683046B/zh
Publication of CN111683046A publication Critical patent/CN111683046A/zh
Application granted granted Critical
Publication of CN111683046B publication Critical patent/CN111683046B/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
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/06Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/174Redundancy elimination performed by the file system
    • G06F16/1744Redundancy elimination performed by the file system using compression, e.g. sparse files
    • 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/0442Network 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 asymmetric encryption, i.e. different keys for encryption and decryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/04Protocols for data compression, e.g. ROHC

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明涉及云技术领域,公开了文件压缩以及获取的方法、装置、设备及存储介质,用于解决压缩文件的压缩效率低下和上传云端服务器安全性低下的问题。文件压缩以及获取方法包括:利用预置函数统计目标文件携带文件信息量的数值大小;若文件信息量的数值大于阈值,则根据拆分编码以及第一压缩算法对目标文件进行压缩,得到第一压缩文件;若文件信息量的数值小于阈值,则根据拆分编码以及第二压缩算法将目标文件进行压缩,得到第二压缩文件;利用加密算法对压缩文件加密,得到加密文件;根据加密文件与预置算法生成加密文件的映射值,并将加密文件的映射值发送到云端服务器;在云端服务器中根据客户端的映射值以及加密文件的映射值提取压缩文件。

Description

文件压缩以及获取的方法、装置、设备及存储介质
技术领域
本发明涉及云技术领域,尤其涉及一种文件压缩以及获取的方法、装置、设备及存储介质。
背景技术
随着科技技术的不断发展,计算机技术已经融入到各行各业中,通过服务器以及云端服务器可以满足多个计算机之间文件的传输。一般的,多个计算机之间进行文件传输时,传输的文件形式为压缩形式,目前压缩文件的方法种类繁多,但功能比较单一,比如:以ZIP形式进行文件压缩,其优势在于压缩速度快,而以RAR形式进行文件压缩,其优势在于安全性强。
在现有压缩文件的过程中,压缩方式单一,对于不同的压缩文件只能选择一种压缩方式进行压缩,导致压缩效率较低;此外,服务器直接将压缩过后的文件上传至云端服务器,导致压缩文件的安全性较低。
发明内容
本发明的主要目的在于解决压缩文件的压缩效率低下以及上传云端服务器安全性低下的问题。
本发明第一方面提供了一种文件压缩以及获取的方法,包括:遍历待压缩的目标文件,利用预置函数统计所述目标文件携带文件信息量的数值大小;若所述文件信息量的数值大于阈值,则根据拆分编码以及第一压缩算法对所述目标文件进行压缩,得到第一压缩文件;若所述文件信息量的数值小于所述阈值,则根据所述拆分编码以及第二压缩算法将所述目标文件进行压缩,得到第二压缩文件,所述第一压缩算法的压缩速率大于所述第二压缩算法的压缩速率,所述第二压缩算法的压缩比例大于所述第一压缩算法的压缩比例;利用加密算法对压缩文件进行加密,得到加密文件,所述加密文件包括所述第一压缩文件与所述第二压缩文件;根据所述加密文件与预置算法生成加密文件的映射值,并将所述加密文件的映射值发送到云端服务器;获取客户端的映射值,在所述云端服务器中根据所述客户端的映射值以及所述加密文件的映射值提取压缩文件。
可选的,在本发明第一方面的第一种实现方式中,所述若所述文件信息量的数值大于阈值,则根据拆分编码以及第一压缩算法对所述目标文件进行压缩,得到第一压缩文件包括:若所述文件信息量的数值大于阈值,则根据第一压缩算法获取所述目标文件内的多个信息字符,所述信息字符用于指示所述目标文件中的文件内容;根据每个所述信息字符的长度以及多个所述信息字符之间的距离,采用拆分编码对所有所述信息字符进行编码,得到第一压缩文件。
可选的,在本发明第一方面的第二种实现方式中,所述根据每个所述信息字符的长度以及多个所述信息字符之间的距离,采用拆分编码对所有所述信息字符进行编码,得到第一压缩文件包括:在多个所述信息字符中查找表述一致的相同字符,并根据第一预置规则在所述相同字符的头部进行标记,得到字符标记,所述第一预置规则用于指示在后一个相同字符的头部上标记与前一个相同字符之间的距离与所述相同字符的长度;判断当前信息字符是否满足利用第二预置规则进行编码的编码条件,所述第二预置规则为信源编码规则,所述编码条件为采用码位为四位的编码表示一个信息字符,所述当前信息字符包括所述信息字符和所述字符标记;当所述当前信息字符满足利用第二预置规则进行编码的编码条件时,利用第二预置规则对所述当前字符进行编码;当所述当前信息字符不满足利用第二预置规则进行编码的编码条件时,从所述当前字符的头部位置将多个信息字符拆分成两个部分,直到当前信息字符满足利用第二预置规则进行编码的编码条件;保存每个所述当前字符的编码,得到第一压缩文件。
可选的,在本发明第一方面的第三种实现方式中,所述利用加密算法对压缩文件进行加密,得到加密文件,所述加密文件包括所述第一压缩文件与所述第二压缩文件包括:基于加密算法在压缩文件中随机选择两个不相同的素数p和q;根据第一预置公式计算n,并根据第二预置公式计算Φ(n),所述第一预置公式为n=p×q,所述第二预置公式为Φ(n)=(p-1)(q-1);根据第三预置公式随机选择一个大于1小于Φ(n)的整数e,所述第三预置公式为gcd(e,Φ(n))=1;根据第四预置公式计算d,所述第四预置公式为mod(d×e,Φ(n))=1;销毁p和q,将(e,n)作为公钥,将(d,n)作为私钥,并利用公钥对所述压缩文件做加密变换,得到加密文件,所述压缩文件包括所述第一压缩文件与所述第二压缩文件。
可选的,在本发明第一方面的第四种实现方式中,所述遍历待压缩的目标文件,利用预置函数统计所述目标文件携带文件信息量的数值大小包括:遍历待压缩的目标文件,获取所述目标文件内的文件信息;通过预置函数同步读取所述文件信息,并计算每个所述文件信息的信息量;计算所述目标文件内所有所述文件信息的信息量总和,得到所述目标文件携带文件信息量的数值大小。
可选的,在本发明第一方面的第五种实现方式中,所述获取客户端的映射值,在所述云端服务器中根据所述客户端的映射值以及所述加密文件的映射值提取到压缩文件包括:获取客户端的映射值;在所述云端服务器中匹配与所述客户端的映射值相同的加密文件的映射值,将所述加密文件的映射值对应的加密文件作为待提取文件;获取客户端的私钥,并采用所述客户端的私钥对所述待提取文件进行解密,得到压缩文件。
可选的,在本发明第一方面的第六种实现方式中,所述根据所述加密文件与预置算法生成加密文件的映射值,并将所述加密文件的映射值发送到云端服务器包括:获取到所述加密文件的文件名字符串、完成加密过程的客户端IP字符串以及加密过程中生成的加密时间字符串;分别提取所述文件名字符串、所述客户端网际互连协议IP字符串以及所述加密时间字符串排列前十位的字符串,得到三个基础字符串;基于编码准则将所述三个基础字符串分别转化为十进制码,得到三个目标字符串;将所述三个目标字符串依次相加得到加密文件的映射值,并将所述加密文件的映射值发送到云端服务器。
本发明第二方面提供了一种文件压缩以及获取的装置,包括:统计模块,用于遍历待压缩的目标文件,利用预置函数统计所述目标文件携带文件信息量的数值大小;第一压缩模块,用于若所述文件信息量的数值大于阈值,则根据拆分编码以及第一压缩算法对所述目标文件进行压缩,得到第一压缩文件;第二压缩模块,用于若所述文件信息量的数值小于所述阈值,则根据所述拆分编码以及第二压缩算法将所述目标文件进行压缩,得到第二压缩文件,所述第一压缩算法的压缩速率大于所述第二压缩算法的压缩速率,所述第二压缩算法的压缩比例大于所述第一压缩算法的压缩比例;加密模块,用于利用加密算法对压缩文件进行加密,得到加密文件,所述加密文件包括所述第一压缩文件与所述第二压缩文件;发送模块,用于根据所述加密文件与预置算法生成加密文件的映射值,并将所述加密文件的映射值发送到云端服务器;提取模块,用于获取客户端的映射值,在所述云端服务器中根据所述客户端的映射值以及所述加密文件的映射值提取压缩文件。
可选的,在本发明第二方面的第一种实现方式中,所述第一压缩模块包括:获取单元,用于若所述文件信息量的数值大于阈值,则根据第一压缩算法获取所述目标文件内的多个信息字符,所述信息字符用于指示所述目标文件中的文件内容;编码单元,用于根据每个所述信息字符的长度以及多个所述信息字符之间的距离,采用拆分编码对所有所述信息字符进行编码,得到第一压缩文件。
可选的,在本发明第二方面的第二种实现方式中,所述编码单元具体用于:在多个所述信息字符中查找表述一致的相同字符,并根据第一预置规则在所述相同字符的头部进行标记,得到字符标记,所述第一预置规则用于指示在后一个相同字符的头部上标记与前一个相同字符之间的距离与所述相同字符的长度;判断当前信息字符是否满足利用第二预置规则进行编码的编码条件,所述第二预置规则为信源编码规则,所述编码条件为采用码位为四位的编码表示一个信息字符,所述当前信息字符包括所述信息字符和所述字符标记;当所述当前信息字符满足利用第二预置规则进行编码的编码条件时,利用第二预置规则对所述当前字符进行编码;当所述当前信息字符不满足利用第二预置规则进行编码的编码条件时,从所述当前字符的头部位置将多个信息字符拆分成两个部分,直到当前信息字符满足利用第二预置规则进行编码的编码条件;保存每个所述当前字符的编码,得到第一压缩文件。
可选的,在本发明第二方面的第三种实现方式中,加密模块具体用于:基于加密算法在压缩文件中随机选择两个不相同的素数p和q;根据第一预置公式计算n,并根据第二预置公式计算Φ(n),所述第一预置公式为n=p×q,所述第二预置公式为Φ(n)=(p-1)(q-1);根据第三预置公式随机选择一个大于1小于Φ(n)的整数e,所述第三预置公式为gcd(e,Φ(n))=1;根据第四预置公式计算d,所述第四预置公式为mod(d×e,Φ(n))=1;销毁p和q,将(e,n)作为公钥,将(d,n)作为私钥,并利用公钥对所述压缩文件做加密变换,得到加密文件,所述压缩文件包括所述第一压缩文件与所述第二压缩文件。
可选的,在本发明第二方面的第四种实现方式中,统计模块具体用于:遍历待压缩的目标文件,获取所述目标文件内的文件信息;通过预置函数同步读取所述文件信息,并计算每个所述文件信息的信息量;计算所述目标文件内所有所述文件信息的信息量总和,得到所述目标文件携带文件信息量的数值大小。
可选的,在本发明第二方面的第五种实现方式中,提取模块具体用于:获取客户端的映射值;在所述云端服务器中匹配与所述客户端的映射值相同的加密文件的映射值,将所述加密文件的映射值对应的加密文件作为待提取文件;获取客户端的私钥,并采用所述客户端的私钥对所述待提取文件进行解密,得到压缩文件。
可选的,在本发明第二方面的第六种实现方式中,发送模块具体用于:获取到所述加密文件的文件名字符串、完成加密过程的客户端网际互连协议IP字符串以及加密过程中生成的加密时间字符串;分别提取所述文件名字符串、所述客户端IP字符串以及所述加密时间字符串排列前十位的字符串,得到三个基础字符串;基于编码准则将所述三个基础字符串分别转化为十进制码,得到三个目标字符串;将所述三个目标字符串依次相加得到加密文件的映射值,并将所述加密文件的映射值发送到云端服务器。
本发明第三方面提供了一种文件压缩以及获取的设备,包括:存储器和至少一个处理器,所述存储器中存储有指令,所述存储器和所述至少一个处理器通过线路互连;所述至少一个处理器调用所述存储器中的所述指令,以使得所述文件压缩以及获取的设备执行上述的文件压缩以及获取的方法。
本发明的第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述的文件压缩以及获取的方法。
本发明提供的技术方案中,遍历待压缩的目标文件,利用预置函数统计所述目标文件携带文件信息量的数值大小;若所述文件信息量的数值大于阈值,则根据拆分编码以及第一压缩算法对所述目标文件进行压缩,得到第一压缩文件;若所述文件信息量的数值小于所述阈值,则根据所述拆分编码以及第二压缩算法将所述目标文件进行压缩,得到第二压缩文件,所述第一压缩算法的压缩速率大于所述第二压缩算法的压缩速率,所述第二压缩算法的压缩比例大于所述第一压缩算法的压缩比例;利用加密算法对压缩文件进行加密,得到加密文件,所述加密文件包括所述第一压缩文件与所述第二压缩文件;根据所述加密文件与预置算法生成加密文件的映射值,并将所述加密文件的映射值发送到云端服务器;获取客户端的映射值,在所述云端服务器中根据所述客户端的映射值以及所述加密文件的映射值提取压缩文件。本发明实施例中,通过利用预置函数计算待压缩的目标文件的文件信息量大小,兼顾压缩比率和压缩速度选择合适的文件压缩方式,提高了压缩文件的压缩效率;在文件压缩后,通过对压缩文件进行非对称加密,并将加密后的加密文件传输至云端服务器,提高用户压缩文件和解压文件的安全性,确保压缩文件不会被恶意破解。
附图说明
图1为本发明实施例中文件压缩以及获取的方法的一个实施例示意图;
图2为本发明实施例中文件压缩以及获取的方法的另一个实施例示意图;
图3为本发明实施例中文件压缩以及获取的装置的一个实施例示意图;
图4为本发明实施例中文件压缩以及获取的装置的另一个实施例示意图;
图5为本发明实施例中文件压缩以及获取的设备的一个实施例示意图。
具体实施方式
本发明实施例提供了一种文件压缩以及获取的方法、装置、设备及存储介质,通过利用预置函数计算待压缩的目标文件的文件信息量大小,兼顾压缩比率和压缩速度选择合适的文件压缩方式,提高了压缩文件的压缩效率;在文件压缩后,通过对压缩文件进行非对称加密,并将加密后的加密文件传输至云端服务器,提高用户压缩文件和解压文件的安全性,确保压缩文件不会被恶意破解。
本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”或“具有”及其任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
为便于理解,下面对本发明实施例的具体流程进行描述,请参阅图1,本发明实施例中文件压缩以及获取的方法的一个实施例包括:
101、遍历待压缩的目标文件,利用预置函数统计目标文件携带文件信息量的数值大小;
可以理解的是,本发明的执行主体可以为文件压缩以及获取的装置,还可以是终端或者服务器,具体此处不做限定。本发明实施例以服务器为执行主体为例进行说明。
这里的待压缩的目标文件内可以包含多个文件,也可以仅包括一个文件,在本申请中并不对目标文件内的文件数量进行限定。因目标文件内包含的文件数量不同,目标文件的信息量也会有所不同,这里的目标文件携带文件信息量指的是文件信息所占的存储内存的大小,也就是文件信息内所有字符的数量,并以字节为单位,在本申请中,并不对每个文件信息的信息量进行限定。此外,在本申请中,并不对目标文件的格式进行限定,可以为TXT格式、DOC格式、PPT格式等等,目标文件的本质上为二进制流,在进行目标文件压缩时,目标文件的格式的不同并不会产生消极影响。
这里的预置函数是Node.js,Node.js是一个让JavaScript运行在服务端的开发平台,它让JavaScript成为与PHP、Python、Perl、Ruby等服务端语言平起平坐的脚本语言。简单的说Node.js就是运行在服务端的一个基于ChromeV8引擎的JavaScript运行环境,Node.js使用了一个事件驱动、非阻塞式I/O的模型,使其轻量又高效。在本申请中,服务器采用Node.js对目标文件携带文件信息量进行计算,这样的计算方式有利于与前端代码结合,例如在做同样一个数据校验时,前后台代码可以共用,不需要单独开发,大大的提高了计算时的效率。
102、若文件信息量的数值大于阈值,则根据拆分编码以及第一压缩算法对目标文件进行压缩,得到第一压缩文件;
需要说明的是,对于携带不同文件信息量的目标文件所采用的压缩方式不同,对于携带文件信息量较大的目标文件可以选择压缩速率比较快的压缩算法,在完成压缩的情况下,缩短压缩所需时间;对于携带文件信息量较小的目标文件可以选择压缩比例比较高的压缩算法,在压缩速度较快的情况下,提高压缩文件的无损性。因此,服务器需要对目标文件携带文件信息量的数值大小进行判断,目标文件携带文件信息量指的就是目标文件内文件信息所占用的存储空间,判断目标文件携带文件信息量的数值大小时,服务器就需要设定一个阈值,来划分文件信息量的界限。目前,zip压缩1G大小的文件所用时间是28s左右,由此,服务器定义压缩时间超过10s的压缩文件为文件信息量偏大的目标文件,经过大量的计算,得到该阈值为365M。
103、若文件信息量的数值小于阈值,则根据拆分编码以及第二压缩算法将目标文件进行压缩,得到第二压缩文件,第一压缩算法的压缩速率大于第二压缩算法的压缩速率,第二压缩算法的压缩比例大于第一压缩算法的压缩比例;
需要说明的是,这里的第一压缩算法与第二压缩算法是压缩的两种算法,但两者所采用的编码方式均为拆分编码。因为计算机存储文件并不会利用100%的空间,有很多空间是闲置的,压缩就是将闲置的空间利用起来,例如:有10个闲置空间,第一压缩算法可以重新利用里面的5个空间,但压缩所需要的时间很少;而第二压缩算法可以重新利用里面的8个空间,甚至减少使用空间,压缩所需要的时间较多,但是压缩比例很高,大大的提高了压缩效率。
104、利用加密算法对压缩文件进行加密,得到加密文件,加密文件包括第一压缩文件与第二压缩文件;
需要说明的是,这里服务器采用的是非对称加密(asymmetric cryptography)的算法为压缩文件进行加密。非对称加密是密码学的一种算法,它需要两个密钥,一个是公开密钥,另一个是私有密钥,公钥可以任意对外发布;而私钥必须由用户自行严格秘密保管,绝不透过任何途径向任何人提供,也不会透露给要通信的另一方,保证传输信息的安全。
非对称加密的具有双向性即公钥和私钥中的任一个均可用作加密,此时另一个则用作解密。使用其中一个密钥把明文加密后所得的密文,只能用相对应的另一个密钥才能解密得到原本的明文。此外,非对称加密中不能利用公钥推导出私钥,虽然两个密钥在数学上相关,但如果明确公钥,并不能凭此计算出私钥;因此公钥可以公开,任意向外发布;而私钥不公开,绝不透过任何途径向任何人提供,保证了文件的信息安全。
如果用户A想要接收用户B传递的信息,但用户A并不想让其他人获取到信息的内容,可以利用非对称加密的方式对信息进行加密,手动在客户端中生成公钥与私钥来进行信息的传递。具体来说:首先用户A需要使用具体约定的算法(例如RSA算法)生成私钥和公钥,私钥用户A保留,而公钥对外公布;用户B拿到用户A的公钥后,便可以对想要发送的消息,例如:“用户B已向用户A转账1BTC,请查收。”进行加密;然后用户B将密文,例如:“FH39ggJ+shi3djifg35”发送给用户A;最后,当用户A收到消息后,用保留的私钥进行解密,还原出消息原文“用户B已向用户A转账1BTC,请查收。”。利用这样的方式对压缩文件进行加密,实现在非安全的通讯通道上实现信息的保密性、完整性、可用性。
105、根据加密文件与预置算法生成加密文件的映射值,并将加密文件的映射值发送到云端服务器;
进一步说明的是,这里服务器利用的预置算法是哈希算法,哈希算法是把任意长度的输入,通过散列算法,变换成固定长度的输出,该输出就是散列值。这种转换是一种压缩映射,也就是散列值的空间通常远小于输入的空间,对于不同的输入可能会散列成相同的输出,因而不能通过散列值来唯一的确定输入值。哈希表是根据设定的哈希函数和处理冲突方法将一组关键字映射到一个有限的地址区间上,并以关键字在地址区间中的象作为记录在表中的存储位置,这种表称为哈希表或散列,所得存储位置称为哈希地址或散列地址。作为线性数据结构与表格和队列等相比,哈希表无疑是查找速度比较快的一种,因此根据机密文件与哈希算法生成加密文件的映射值,再将其发送到云端服务器上,可以令客户端更好的找到云端服务器中的加密文件。
106、获取客户端的映射值,在云端服务器中根据客户端的映射值以及加密文件的映射值提取压缩文件。
这里服务器需要获取客户端的映射值,根据客户端映射值在云端服务器中匹配到与客户端映射值相同的加密文件的映射值,客户端映射值与加密文件的映射值相同,说明服务器在云端服务器中查询到了所需获取的加密文件,再根据客户端的私钥对该加密文件进行解密,就可以获取压缩文件。
需要说明的是,这里对加密文件进行解密的过程与对压缩文件进行加密的过程是相对应的,因此在本申请中不进行赘述。
本发明实施例中,通过利用预置函数计算待压缩的目标文件的文件信息量大小,兼顾压缩比率和压缩速度选择合适的文件压缩方式,提高了压缩文件的压缩效率;在文件压缩后,通过对压缩文件进行非对称加密,并将加密后的加密文件传输至云端服务器,提高用户压缩文件和解压文件的安全性,确保压缩文件不会被恶意破解。
请参阅图2,本发明实施例中文件压缩以及获取的方法的另一个实施例包括:
201、遍历待压缩的目标文件,利用预置函数统计目标文件携带文件信息量的数值大小;
服务器首先遍历待压缩的目标文件,获取到目标文件内的文件信息,这里的文件信息至少为一个,然后服务器通过预置函数同步读取文件信息,并计算每个文件信息的信息量,这里的预置函数为Node.js,最后,服务器将目标文件内每个文件信息的信息量相加,得到目标文件携带文件信息量的数值大小。
这里的待压缩的目标文件内可以包含多个文件,也可以仅包括一个文件,在本申请中并不对目标文件内的文件数量进行限定。因目标文件内包含的文件数量不同,目标文件的信息量也会有所不同,这里的目标文件携带文件信息量指的是文件信息所占的存储内存的大小,也就是文件信息内所有字符的数量,并以字节为单位,在本申请中,并不对每个文件信息的信息量进行限定。此外,在本申请中,并不对目标文件的格式进行限定,可以为TXT格式、DOC格式、PPT格式等等,目标文件的本质上为二进制流,在进行目标文件压缩时,目标文件的格式的不同并不会产生消极影响。
这里的预置函数是Node.js,Node.js是一个让JavaScript运行在服务端的开发平台,它让JavaScript成为与PHP、Python、Perl、Ruby等服务端语言平起平坐的脚本语言。在本申请中,服务器采用Node.js对目标文件携带文件信息量进行计算,这样的计算方式有利于与前端代码结合,例如在做同样一个数据校验时,前后台代码可以共用,不需要单独开发,大大的提高了计算时的效率。需要说明的是,在本申请中除了利用Node.js对文件信息的信息量进行计算外,还可以通过python脚本或者shell脚本来计算文件信息的信息量。
举例来说,服务器首先遍历待压缩的目标文件,获取到文件内的所有文件信息,然后服务器同步读取获取到的文件信息,并同时利用Node.js计算每个文件信息的信息量,待计算每个文件信息的信息量之后,服务器按照文件信息的信息量的数值大小进行排序,文件信息的信息量数值大的所对应的目标文件排列在前面,文件信息的信息量数值小的所对应的目标文件排列在后面,在进行文件信息的信息量的保存时,是以文件信息的文件名称进行储存的,最后服务器计算所有文件信息的信息量总和,得到目标文件所携带文件信息量的数值大小。
202、若文件信息量的数值大于阈值,则根据第一压缩算法获取目标文件内的多个信息字符,信息字符用于指示目标文件中的文件内容;
需要说明的是,对于携带不同文件信息量的目标文件所采用的压缩方式不同,对于携带文件信息量较大的目标文件可以选择压缩速率比较快的压缩算法,在完成压缩的情况下,缩短压缩所需时间;对于携带文件信息量较小的目标文件可以选择压缩比例比较高的压缩算法,在压缩速度较快的情况下,提高压缩文件的无损性。因此,服务器需要对目标文件携带文件信息量的数值大小进行判断,目标文件携带文件信息量指的就是目标文件内文件信息所占用的存储空间,判断目标文件携带文件信息量的数值大小之后,服务器就需要设定一个阈值,来划分文件信息量的界限。目前,zip压缩1G大小的文件所用时间是28s左右,由此,服务器定义压缩时间超过10s的压缩文件为文件信息量偏大的目标文件,经过大量的计算,得到该阈值为365M。
在这里,服务器在进行对文件压缩的时候使用的是拆分编码的算法,在拆分编码之前,先要对信息字符进行标记,服务器在所有字符中查找表述一致的相同字符,在相同字符的头部进行标记,标记的规则是,当出现后一个相同字符与前一个相同字符表述一致时,在后一个相同字符的头部上标记一个相同字符标记,该字符标记用于指示后一个相同字符与距离最近的前一个相同字符之间的距离与该相同字符的长度。待编码之后,由于在所有信息字符中,除相同字符外还有未重复的信息字符,所以服务器对出现的所有字符进行统一编码,这里采用的编码方式为信源编码,每个字符的编码位数为四位,利用相应的编码表记录与编码对应的信息字符,在进行编码的过程中,若当前字符的编码不能够用四位数的编码进行表达,则服务器从当前字符的头部位置将信息字符串拆分成前后两部分,从当前字符的头部开始重新进行编码,所采用的编码表也为新的编码表,在所有信息字符编码的过程中,可以进行不止一次的拆分,这样对信息字符进行编码直到所有信息字符完成编码的过程。
203、根据每个信息字符的长度以及多个信息字符之间的距离,采用拆分编码对所有信息字符进行编码,得到第一压缩文件;
首先服务器在多个信息字符中查找表述一致的相同字符,并根据第一预置规则在相同字符的头部进行标记,得到字符标记,第一预置规则用于指示在后一个相同字符的头部上标记与前一个相同字符之间的距离与相同字符的长度;然后服务器判断当前信息字符是否满足利用第二预置规则进行编码的编码条件,编码条件为采用码位为四位的编码表示一个信息字符,当前信息字符包括信息字符和字符标记,第二预置规则为信源编码规则;当当前信息字符满足利用第二预置规则进行编码的编码条件时,利用第二预置规则对当前字符进行编码;当当前信息字符不满足利用第二预置规则进行编码的编码条件时,从当前字符的头部位置将多个信息字符拆分成两个部分,直到当前信息字符满足利用第二预置规则进行编码的编码条件;最后服务器保存每个当前字符的编码,得到第一压缩文件。
需要说明的是,这里的第二预置规则指的是信源编码,信源编码是一种以提高通信有效性为目的而对信源符号进行的变换,或者说为了减少或消除信源冗余度而进行的信源符号变换。信源编码最常见的是讨论统计特性已知条件下,离散、平稳、无失真信源的编码,消除这类信源冗余度的主要方法有统计匹配编码和解除相关性编码,比如香农码、费诺码、赫夫曼码。利用信源编码可以更好的利用编码表示每一个信息字符。
举例来说:对于信息字符串“生,容易。活,容易。生活,不容易。”进行编码,首先服务器所有信息字符中查找表述一致的相同字符,并根据第一预置规则在相同字符的头部进行标记,也就是在第二个“容易。”的信息字符头部标记(5,3),其中,5代表后一个相同字符与前一个相同字符之间的距离,3代表相同字符“容易。”的长度;在第三个“容易。”的信息字符头部标记(7,3),其中,7代表后一个相同字符与前一个相同字符之间的距离,3代表相同字符“容易。”的长度。之后服务器再利用第二预置规则对所有信息字符进行编码,对照相应信源编码的编码表,对信息字符串进行编码,而已经获得的字符标记也按照相应的信源编码的方式进行编码。当在编码时,出现四位码字表达不了当前信息字符的情况下,则从当前信息字符的头部进行拆分,例如:字符串“生,容易。活,容易。生活,不容易。”中第五个信息字符“。”的编码为1111,在此之前,所有由0和1组成的四位编码都有相应的信息字符与之对应,而第六个信息字符“活”不能继续进行编码,则从第六个信息字符“活”开始将信息字符串进行拆分,重新进行编码,对应的编码也随之进行改变,直到所有的信息字符均有自己的编码。
204、若文件信息量的数值小于阈值,则根据拆分编码以及第二压缩算法将目标文件进行压缩,得到第二压缩文件,第一压缩算法的压缩速率大于第二压缩算法的压缩速率快,第二压缩算法的压缩比例大于第一压缩算法的压缩比例;
需要说明的是,这里的第一压缩算法与第二压缩算法是压缩的两种算法,但两者所采用的编码方式均为拆分编码。因为计算机存储文件并不会利用100%的空间,有很多空间是闲置的,压缩就是将闲置的空间利用起来,例如:有10个闲置空间,第一压缩算法可以重新利用里面的5个空间,但压缩所需要的时间很少;而第二压缩算法可以重新利用里面的8个空间,甚至减少使用空间,压缩所需要的时间较多,但是压缩比例很高,大大的提高了压缩效率。
例如:当第一压缩算法为ZIP时,ZIP压缩所采用的是deflate算法以及Huffman编码,适用于压缩携带文件信息量数值较大的目标文件,这种压缩算法压缩比例比较低,但是压缩的速度会比较快。相比之下,当第二压缩算法为RAR时,RAR文件通常比ZIP文件压缩比要高,但是压缩速度较慢。因为RAR文件头也要占据一定空间,在数据压缩余地不大时,压缩过的文件可能比原文件要大。RAR的一个主要优点是可以把文件压缩目标分割到多个文件,并且很容易从这样的分割的压缩文件解压出源文件。另外,RAR也支持紧缩格式,把所有文件压缩到同一个数据区以加大压缩比,代价是解压一个单独的文件时必须解压其前面的所有文件。
205、利用加密算法对压缩文件进行加密,得到加密文件,加密文件包括第一压缩文件与第二压缩文件;
在这里,非对称加密主要利用的算法是RSA算法,其生成公钥以及密钥的步骤如下:首先,服务器在压缩文件中随机选择两个不相同的素数p和q;其次,服务器根据第一预置公式计算n,并根据第二预置公式计算Φ(n),第一预置公式为n=p×q,第二预置公式为Φ(n)=(p-1)(q-1);然后,服务器根据第三预置公式随机选择大于1小于Φ(n)的整数e,第三预置公式为gcd(e,Φ(n))=1,这里的gcd指的是最大公约数,也就是随机选择整数e,使得e与Φ(n)的最大公约数为1;服务器再根据第四预置公式计算d,第二预置公式为mod(d×e,Φ(n))=1,这里的mod指的是求余运算,也就是求d×e和Φ(n)相除后的余数为1,以此来计算d;最后,服务器将p和q销毁,将(e,n)作为公钥,将作为私钥,针对每一个密钥k=(n,p,q,d,e),定义加密变换为Ek(x)=x×emodn,解密变换为Dk(x)=y×dmodn,这里x,y均为正整数。
举例来说,服务器随机选择了两个不相同的素数p=3和q=11,根据第一预置公式以及(d,n)第二预置公式计算得到n=p×q=3×11=33,第二预置公式为Φ(n)=(p-1)(q-1)=2×10=20,根据第三预置公式,假设e=3,使得gcd(e,Φ(n))=gcd(e,20)=1,最后再根据第四预置公式计算d,使得mod(d×e,Φ(n))=mod(d×3,20)=1,得到d=7,由此,服务器确定计算过后的公钥为(e,n)=(3,33),私钥为(d,n)=(7,33)。
如果用户A想要接收用户B传递的信息,但用户A并不想让其他人获取到信息的内容,可以利用非对称加密的方式对信息进行加密,手动在客户端中生成公钥与私钥来进行信息的传递。具体来说:首先用户A需要使用具体约定的算法(例如RSA算法)生成私钥和公钥,私钥用户A保留,而公钥对外公布;用户B拿到用户A的公钥后,便可以对想要发送的消息,例如:“用户B已向用户A转账1BTC,请查收。”进行加密;然后用户B将密文,例如:“FH39ggJ+shi3djifg35”发送给用户A;最后,当用户A收到消息后,用保留的私钥进行解密,还原出消息原文“用户B已向用户A转账1BTC,请查收。”。利用这样的方式对压缩文件进行加密,实现在非安全的通讯通道上实现信息的保密性、完整性、可用性。
206、根据加密文件与预置算法生成加密文件的映射值,并将加密文件的映射值发送到云端服务器;
首先服务器获取到加密文件的文件名字符串、完成加密过程的客户端网际互连协议IP字符串以及加密过程中生成的加密时间字符串;其次服务器分别提取文件名字符串、客户端IP字符串以及加密时间字符串排列前十位的字符串,得到三个基础字符串;然后服务器基于编码准则将三个基础字符串分别转化为十进制码,得到三个目标字符串;最后服务器将三个目标字符串依次相加得到加密文件的映射值,并将加密文件的映射值发送到云端服务器。
进一步说明的是,这里服务器利用的预置算法是哈希算法,哈希算法是把任意长度的输入(又叫做预映射),通过散列算法,变换成固定长度的输出,该输出就是散列值。这种转换是一种压缩映射,也就是散列值的空间通常远小于输入的空间,对于不同的输入可能会散列成相同的输出,因而不能通过散列值来唯一的确定输入值。哈希表是根据设定的哈希函数H(key)和处理冲突方法将一组关键字映射到一个有限的地址区间上,并以关键字在地址区间中的象作为记录在表中的存储位置,这种表称为哈希表或散列,所得存储位置称为哈希地址或散列地址。作为线性数据结构与表格和队列等相比,哈希表无疑是查找速度比较快的一种,因此根据机密文件与哈希算法生成加密文件的映射值,再将其发送到云端服务器上,可以令客户端更好的找到云端服务器中的加密文件。
在本申请中,因为数据元素关键字为信息字符串,所以利用字符串数值哈希法来进行函数的构造,哈希函数是取信息字符串前10个信息字符来设计的哈希函数,提取所利用的信息字符串排列前10位的信息字符串,并通过编码准则将字符串转化为十进制码,这里用的编码准则是美国信息交换标准代码(American Standard Code for InformationInterchange,ASCII),待服务器信息将字符串转化为十进制码后,求取所有十进制码的总和,得到数值即作为哈希地址,这种构造方法把一个字符串的绝对长度作为输入,并通过一种方式把字符的十进制值结合起来,对长字符串和短字符串都有效,这种方式产生的位置不可能不均匀分布。
207、获取客户端的映射值,在云端服务器中根据客户端的映射值以及加密文件的映射值提取压缩文件。
首先服务器获取客户端的映射值;然后服务器在云端服务器中匹配与客户端的映射值相同的加密文件的映射值,并将加密文件的映射值对应的加密文件作为待提取文件;最后服务器获取客户端的私钥,并采用客户端的私钥对待提取文件进行解密,得到压缩文件。
这里服务器需要获取客户端的映射值,根据客户端映射值在云端服务器中匹配到与客户端映射值相同的加密文件的映射值,客户端映射值与加密文件的映射值相同,说明服务器在云端服务器中查询到了所需获取的加密文件,再根据客户端的私钥对该加密文件进行解密,就可以获取到压缩文件。
需要说明的是,这里对加密文件进行解密的过程与对压缩文件进行加密的过程是相对应的,因此在本申请中不进行赘述。
本发明实施例中,通过利用预置函数计算待压缩的目标文件的文件信息量大小,兼顾压缩比率和压缩速度选择合适的文件压缩方式,提高了压缩文件的压缩效率;在文件压缩后,通过对压缩文件进行非对称加密,并将加密后的加密文件传输至云端服务器,提高用户压缩文件和解压文件的安全性,确保压缩文件不会被恶意破解。
上面对本发明实施例中文件压缩以及获取的方法进行了描述,下面对本发明实施例中文件压缩以及获取的装置进行描述,请参阅图3,本发明实施例中文件压缩以及获取的装置一个实施例包括:
统计模块301,用于遍历待压缩的目标文件,利用预置函数统计目标文件携带文件信息量的数值大小;
第一压缩模块302,用于若文件信息量的数值大于阈值,则根据拆分编码以及第一压缩算法对目标文件进行压缩,得到第一压缩文件;
第二压缩模块303,用于若文件信息量的数值小于阈值,则根据拆分编码以及第二压缩算法将目标文件进行压缩,得到第二压缩文件,第一压缩算法的压缩速率大于第二压缩算法的压缩速率,第二压缩算法的压缩比例大于第一压缩算法的压缩比例;
加密模块304,用于利用加密算法对压缩文件进行加密,得到加密文件,加密文件包括第一压缩文件与第二压缩文件;
发送模块305,用于根据加密文件与预置算法生成加密文件的映射值,并将加密文件的映射值发送到云端服务器;
提取模块306,用于获取客户端的映射值,在云端服务器中根据客户端的映射值以及加密文件的映射值提取压缩文件。
本发明实施例中,通过利用预置函数计算待压缩的目标文件的文件信息量大小,兼顾压缩比率和压缩速度选择合适的文件压缩方式,提高了压缩文件的压缩效率;在文件压缩后,通过对压缩文件进行非对称加密,并将加密后的加密文件传输至云端服务器,提高用户压缩文件和解压文件的安全性,确保压缩文件不会被恶意破解。
请参阅图4,本发明实施例中文件压缩以及获取的装置的另一个实施例包括:
统计模块301,用于遍历待压缩的目标文件,利用预置函数统计目标文件携带文件信息量的数值大小;
第一压缩模块302,用于若文件信息量的数值大于阈值,则根据拆分编码以及第一压缩算法对目标文件进行压缩,得到第一压缩文件;
第二压缩模块303,用于若文件信息量的数值小于阈值,则根据拆分编码以及第二压缩算法将目标文件进行压缩,得到第二压缩文件,第一压缩算法的压缩速率大于第二压缩算法的压缩速率,第二压缩算法的压缩比例大于第一压缩算法的压缩比例;
加密模块304,用于利用加密算法对压缩文件进行加密,得到加密文件,加密文件包括第一压缩文件与第二压缩文件;
发送模块305,用于根据加密文件与预置算法生成加密文件的映射值,并将加密文件的映射值发送到云端服务器;
提取模块306,用于获取客户端的映射值,在云端服务器中根据客户端的映射值以及加密文件的映射值提取压缩文件。
可选的,第一压缩模块302包括:
获取单元3021,用于若文件信息量的数值大于阈值,则根据第一压缩算法获取目标文件内的多个信息字符,信息字符用于指示目标文件中的文件内容;
编码单元3022,用于根据每个信息字符的长度以及多个信息字符之间的距离,采用拆分编码对所有信息字符进行编码,得到第一压缩文件。
可选的,编码单元3022还可以具体用于:
在多个信息字符中查找表述一致的相同字符,并根据第一预置规则在相同字符的头部进行标记,得到字符标记,第一预置规则用于指示在后一个相同字符的头部上标记与前一个相同字符之间的距离与相同字符的长度;
判断当前信息字符是否满足利用第二预置规则进行编码的编码条件,第二预置规则为信源编码规则,编码条件为采用码位为四位的编码表示一个信息字符,当前信息字符包括信息字符和字符标记;
当当前信息字符满足利用第二预置规则进行编码的编码条件时,利用第二预置规则对当前字符进行编码;
当当前信息字符不满足利用第二预置规则进行编码的编码条件时,从当前字符的头部位置将多个信息字符拆分成两个部分,直到当前信息字符满足利用第二预置规则进行编码的编码条件;
保存每个当前字符的编码,得到第一压缩文件。
可选的,加密模块304还可以具体用于:
基于加密算法在压缩文件中随机选择两个不相同的素数p和q;
根据第一预置公式计算n,并根据第二预置公式计算Φ(n),第一预置公式为n=p×q,第二预置公式为Φ(n)=(p-1)(q-1);
根据第三预置公式随机选择一个大于1小于Φ(n)的整数e,第三预置公式为gcd(e,Φ(n))=1;
根据第四预置公式计算d,第四预置公式为mod(d×e,Φ(n))=1;
销毁p和q,将(e,n)作为公钥,将(d,n)作为私钥,并利用公钥对压缩文件做加密变换,得到加密文件,压缩文件包括第一压缩文件与第二压缩文件。
可选的,统计模块301还可以具体用于:
遍历待压缩的目标文件,获取目标文件内的文件信息;
通过预置函数同步读取文件信息,并计算每个文件信息的信息量;
计算目标文件内所有文件信息的信息量总和,得到目标文件携带文件信息量的数值大小。
可选的,提取模块306还可以具体用于:
获取客户端的映射值;
在云端服务器中匹配与客户端的映射值相同的加密文件的映射值,将加密文件的映射值对应的加密文件作为待提取文件;
获取客户端的私钥,并采用客户端的私钥对待提取文件进行解密,得到压缩文件。
可选的,发送模块305还可以具体用于:
获取到加密文件的文件名字符串、完成加密过程的客户端网际互连协议IP字符串以及加密过程中生成的加密时间字符串;
分别提取文件名字符串、客户端IP字符串以及加密时间字符串排列前十位的字符串,得到三个基础字符串;
基于编码准则将三个基础字符串分别转化为十进制码,得到三个目标字符串;
将三个目标字符串依次相加得到加密文件的映射值,并将加密文件的映射值发送到云端服务器。
本发明实施例中,通过利用预置函数计算待压缩的目标文件的文件信息量大小,兼顾压缩比率和压缩速度选择合适的文件压缩方式,提高了压缩文件的压缩效率;在文件压缩后,通过对压缩文件进行非对称加密,并将加密后的加密文件传输至云端服务器,提高用户压缩文件和解压文件的安全性,确保压缩文件不会被恶意破解。
上面图3和图4从模块化功能实体的角度对本发明实施例中的文件压缩以及获取的装置进行详细描述,下面从硬件处理的角度对本发明实施例中文件压缩以及获取的设备进行详细描述。
图5是本发明实施例提供的一种文件压缩以及获取的设备的结构示意图,该文件压缩以及获取的设备500可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(central processing units,CPU)510(例如,一个或一个以上处理器)和存储器520,一个或一个以上存储应用程序533或数据532的存储介质530(例如一个或一个以上海量存储设备)。其中,存储器520和存储介质530可以是短暂存储或持久存储。存储在存储介质530的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对文件压缩以及获取的设备500中的一系列指令操作。更进一步地,处理器510可以设置为与存储介质530通信,在文件压缩以及获取的设备500上执行存储介质530中的一系列指令操作。
文件压缩以及获取的设备500还可以包括一个或一个以上电源540,一个或一个以上有线或无线网络接口550,一个或一个以上输入输出接口560,和/或,一个或一个以上操作系统531,例如Windows Serve,Mac OS X,Unix,Linux,FreeBSD等等。本领域技术人员可以理解,图5示出的文件压缩以及获取的设备结构并不构成对文件压缩以及获取的设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
本发明还提供一种计算机可读存储介质,该计算机可读存储介质可以为非易失性计算机可读存储介质,该计算机可读存储介质也可以为易失性计算机可读存储介质,所述计算机可读存储介质中存储有指令,当所述指令在计算机上运行时,使得计算机执行所述文件压缩以及获取的方法的步骤。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (10)

1.一种文件压缩以及获取的方法,其特征在于,所述文件压缩以及获取的方法包括:
遍历待压缩的目标文件,利用预置函数统计所述目标文件携带文件信息量的数值大小;
若所述文件信息量的数值大于阈值,则根据拆分编码以及第一压缩算法对所述目标文件进行压缩,得到第一压缩文件;
若所述文件信息量的数值小于所述阈值,则根据所述拆分编码以及第二压缩算法将所述目标文件进行压缩,得到第二压缩文件,所述第一压缩算法的压缩速率大于所述第二压缩算法的压缩速率,所述第二压缩算法的压缩比例大于所述第一压缩算法的压缩比例;
利用加密算法对压缩文件进行加密,得到加密文件,所述加密文件包括所述第一压缩文件与所述第二压缩文件;
根据所述加密文件与预置算法生成加密文件的映射值,并将所述加密文件的映射值发送到云端服务器;
获取客户端的映射值,在所述云端服务器中根据所述客户端的映射值以及所述加密文件的映射值提取压缩文件。
2.根据权利要求1所述的文件压缩以及获取的方法,其特征在于,所述若所述文件信息量的数值大于阈值,则根据拆分编码以及第一压缩算法对所述目标文件进行压缩,得到第一压缩文件包括:
若所述文件信息量的数值大于阈值,则根据第一压缩算法获取所述目标文件内的多个信息字符,所述信息字符用于指示所述目标文件中的文件内容;
根据每个所述信息字符的长度以及多个所述信息字符之间的距离,采用拆分编码对所有所述信息字符进行编码,得到第一压缩文件。
3.根据权利要求2所述的文件压缩以及获取的方法,其特征在于,所述根据每个所述信息字符的长度以及多个所述信息字符之间的距离,采用拆分编码对所有所述信息字符进行编码,得到第一压缩文件包括:
在多个所述信息字符中查找表述一致的相同字符,并根据第一预置规则在所述相同字符的头部进行标记,得到字符标记,所述第一预置规则用于指示在后一个相同字符的头部上标记与前一个相同字符之间的距离与所述相同字符的长度;
判断当前信息字符是否满足利用第二预置规则进行编码的编码条件,所述第二预置规则为信源编码规则,所述编码条件为采用码位为四位的编码表示一个信息字符,所述当前信息字符包括所述信息字符和所述字符标记;
当所述当前信息字符满足利用第二预置规则进行编码的编码条件时,利用第二预置规则对所述当前字符进行编码;
当所述当前信息字符不满足利用第二预置规则进行编码的编码条件时,从所述当前字符的头部位置将多个信息字符拆分成两个部分,直到当前信息字符满足利用第二预置规则进行编码的编码条件;
保存每个所述当前信息 字符的编码,得到第一压缩文件。
4.根据权利要求1所述的文件压缩以及获取的方法,其特征在于,所述利用加密算法对压缩文件进行加密,得到加密文件,所述加密文件包括所述第一压缩文件与所述第二压缩文件包括:
基于加密算法在压缩文件中随机选择两个不相同的素数p和q;
根据第一预置公式计算n,并根据第二预置公式计算Φ(n),所述第一预置公式为n=p×q,所述第二预置公式为Φ(n)=(p-1)(q-1);
根据第三预置公式随机选择一个大于1小于Φ(n)的整数e,所述第三预置公式为gcd(e,Φ(n))=1;
根据第四预置公式计算d,所述第四预置公式为mod(d×e,Φ(n))=1;
销毁p和q,将(e,n)作为公钥,将(d,n)作为私钥,并利用公钥对所述压缩文件做加密变换,得到加密文件,所述压缩文件包括所述第一压缩文件与所述第二压缩文件。
5.根据权利要求1所述的文件压缩以及获取的方法,其特征在于,所述遍历待压缩的目标文件,利用预置函数统计所述目标文件携带文件信息量的数值大小包括:
遍历待压缩的目标文件,获取所述目标文件内的文件信息;
通过预置函数同步读取所述文件信息,并计算每个所述文件信息的信息量;
计算所述目标文件内所有所述文件信息的信息量总和,得到所述目标文件携带文件信息量的数值大小。
6.根据权利要求4所述的文件压缩以及获取的方法,其特征在于,所述获取客户端的映射值,在所述云端服务器中根据所述客户端的映射值以及所述加密文件的映射值提取到压缩文件包括:
获取客户端的映射值;
在所述云端服务器中匹配与所述客户端的映射值相同的加密文件的映射值,将所述加密文件的映射值对应的加密文件作为待提取文件;
获取客户端的私钥,并采用所述客户端的私钥对所述待提取文件进行解密,得到压缩文件。
7.根据权利要求1-6中任一项所述的文件压缩以及获取的方法,其特征在于,所述根据所述加密文件与预置算法生成加密文件的映射值,并将所述加密文件的映射值发送到云端服务器包括:
获取到所述加密文件的文件名字符串、完成加密过程的客户端网际互连协议IP字符串以及加密过程中生成的加密时间字符串;
分别提取所述文件名字符串、所述客户端IP字符串以及所述加密时间字符串排列前十位的字符串,得到三个基础字符串;
基于编码准则将所述三个基础字符串分别转化为十进制码,得到三个目标字符串;
将所述三个目标字符串依次相加得到加密文件的映射值,并将所述加密文件的映射值发送到云端服务器。
8.一种文件压缩以及获取的装置,其特征在于,所述文件压缩以及获取的装置包括:
统计模块,用于遍历待压缩的目标文件,利用预置函数统计所述目标文件携带文件信息量的数值大小;
第一压缩模块,用于若所述文件信息量的数值大于阈值,则根据拆分编码以及第一压缩算法对所述目标文件进行压缩,得到第一压缩文件;
第二压缩模块,用于若所述文件信息量的数值小于所述阈值,则根据所述拆分编码以及第二压缩算法将所述目标文件进行压缩,得到第二压缩文件,所述第一压缩算法的压缩速率大于所述第二压缩算法的压缩速率,所述第二压缩算法的压缩比例大于所述第一压缩算法的压缩比例;
加密模块,用于利用加密算法对压缩文件进行加密,得到加密文件,所述加密文件包括所述第一压缩文件与所述第二压缩文件;
发送模块,用于根据所述加密文件与预置算法生成加密文件的映射值,并将所述加密文件的映射值发送到云端服务器;
提取模块,用于获取客户端的映射值,在所述云端服务器中根据所述客户端的映射值以及所述加密文件的映射值提取压缩文件。
9.一种文件压缩以及获取的设备,其特征在于,所述文件压缩以及获取的设备包括:存储器和至少一个处理器,所述存储器中存储有指令,所述存储器和所述至少一个处理器通过线路互连;
所述至少一个处理器调用所述存储器中的所述指令,以使得所述文件压缩以及获取的设备执行如权利要求1-7中任意一项所述的文件压缩以及获取的方法。
10.一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-7中任一项所述文件压缩以及获取的方法。
CN202010359196.9A 2020-04-29 2020-04-29 文件压缩以及获取的方法、装置、设备及存储介质 Active CN111683046B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010359196.9A CN111683046B (zh) 2020-04-29 2020-04-29 文件压缩以及获取的方法、装置、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010359196.9A CN111683046B (zh) 2020-04-29 2020-04-29 文件压缩以及获取的方法、装置、设备及存储介质

Publications (2)

Publication Number Publication Date
CN111683046A CN111683046A (zh) 2020-09-18
CN111683046B true CN111683046B (zh) 2022-11-08

Family

ID=72451720

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010359196.9A Active CN111683046B (zh) 2020-04-29 2020-04-29 文件压缩以及获取的方法、装置、设备及存储介质

Country Status (1)

Country Link
CN (1) CN111683046B (zh)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111984610A (zh) * 2020-09-27 2020-11-24 苏州浪潮智能科技有限公司 数据压缩方法、装置及计算机可读存储介质
CN112491832B (zh) * 2020-11-16 2023-12-05 中国银联股份有限公司 一种文件传输方法及装置
CN112559462A (zh) * 2020-12-14 2021-03-26 深圳供电局有限公司 一种数据压缩方法、装置、计算机设备和存储介质
CN115149958A (zh) * 2021-03-30 2022-10-04 华为技术有限公司 数据压缩方法及装置
CN113626394B (zh) * 2021-06-30 2023-08-15 苏州浪潮智能科技有限公司 一种数据压缩方法及相关装置
CN114363379A (zh) * 2022-01-19 2022-04-15 北京中交兴路信息科技有限公司 车辆数据传输的方法、装置、电子设备及介质
CN114741205B (zh) * 2022-06-02 2022-11-11 荣耀终端有限公司 一种匿名页回收方法及电子设备
WO2024066753A1 (zh) * 2022-09-29 2024-04-04 华为云计算技术有限公司 压缩数据的方法和相关装置
CN115309703B (zh) * 2022-10-10 2023-01-03 联想凌拓科技有限公司 文件读取方法及装置、电子设备及存储介质
CN117910023B (zh) * 2024-03-19 2024-05-14 天津市职业大学 基于大数据的计算机信息安全处理方法及系统

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105138333A (zh) * 2015-08-27 2015-12-09 北京暴风科技股份有限公司 基于安卓系统的apk文件压缩的方法及系统
CN105677259A (zh) * 2016-02-29 2016-06-15 珠海市魅族科技有限公司 一种移动终端中存储文件的方法及移动终端
CN109325006A (zh) * 2018-08-23 2019-02-12 郑州云海信息技术有限公司 一种压缩存储的方法和装置、解压下载的方法和装置
CN109756230A (zh) * 2019-01-03 2019-05-14 Oppo广东移动通信有限公司 数据压缩存储方法、数据压缩方法、装置、设备及介质
CN110147239A (zh) * 2019-05-22 2019-08-20 苏州仙峰网络科技股份有限公司 游戏安装包体的多重压缩的方法、设备及存储介质

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPWO2014030189A1 (ja) * 2012-08-23 2016-07-28 富士通株式会社 圧縮プログラム、圧縮方法、圧縮装置、伸張プログラム、伸張方法、伸張装置およびデータ転送システム
CN109218309A (zh) * 2018-09-14 2019-01-15 郑州云海信息技术有限公司 一种数据备份方法、装置、设备及计算机可读存储介质

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105138333A (zh) * 2015-08-27 2015-12-09 北京暴风科技股份有限公司 基于安卓系统的apk文件压缩的方法及系统
CN105677259A (zh) * 2016-02-29 2016-06-15 珠海市魅族科技有限公司 一种移动终端中存储文件的方法及移动终端
CN109325006A (zh) * 2018-08-23 2019-02-12 郑州云海信息技术有限公司 一种压缩存储的方法和装置、解压下载的方法和装置
CN109756230A (zh) * 2019-01-03 2019-05-14 Oppo广东移动通信有限公司 数据压缩存储方法、数据压缩方法、装置、设备及介质
CN110147239A (zh) * 2019-05-22 2019-08-20 苏州仙峰网络科技股份有限公司 游戏安装包体的多重压缩的方法、设备及存储介质

Also Published As

Publication number Publication date
CN111683046A (zh) 2020-09-18

Similar Documents

Publication Publication Date Title
CN111683046B (zh) 文件压缩以及获取的方法、装置、设备及存储介质
US6122379A (en) Method and apparatus for performing simultaneous data compression and encryption
Sharma et al. Data security using compression and cryptography techniques
WO2021179518A1 (en) Methods and apparatuses for oblivious transfer using trusted environment
CN109740362B (zh) 一种基于熵编码的密文索引生成与检索方法及系统
Amalarethinam et al. Image encryption and decryption in public key cryptography based on MR
JP2019528028A (ja) 幾何代数を用いた高度データ中心型暗号化システムのための方法およびシステム
US11232076B2 (en) System and methods for bandwidth-efficient cryptographic data transfer
CN115664747A (zh) 加密方法和装置
CN112491832A (zh) 一种文件传输方法及装置
Bergen et al. Data security in a fixed-model arithmetic coding compression algorithm
Rachmawati et al. An implementation of elias delta code and elgamal algorithm in image compression and security
US8712040B2 (en) Data-conditioned encryption method
US11477172B2 (en) Securing data compression
CN111931204A (zh) 用于分布式系统的加密去重存储方法、终端设备
CN112953716A (zh) 一种兑换码生成及其验证方法和装置
Kumar et al. A novel approach for securing data in IoTcloud using DNA cryptography and Huffman coding algorithm
US11734231B2 (en) System and methods for bandwidth-efficient encoding of genomic data
KR101048661B1 (ko) 데이터에 대한 압축 및 암호화 연산을 위한 방법, 장치 및 컴퓨터 판독 가능한 기록 매체
WO2021144834A1 (ja) 秘匿検索システム、秘匿検索方法、及び、秘匿検索プログラム
CN115114279A (zh) 置换表生成方法、数据加、解密方法及装置、介质、设备
Rachmawati et al. Enhancing file security by using vigenere cipher and even rodeh code algorithm
EP0810737A2 (en) Method and apparatus for performing simultaneous data compression and encryption
Gadad et al. Cloud security: literature survey
SRIDEVI et al. Information Security through Compression and Cryptography Techniques

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
TA01 Transfer of patent application right

Effective date of registration: 20210209

Address after: Room 201, building a, No.1 Qianwan 1st Road, Shenzhen Hong Kong cooperation zone, Shenzhen, Guangdong Province (settled in Shenzhen Qianhai business secretary Co., Ltd.)

Applicant after: Shenzhen saiante Technology Service Co.,Ltd.

Address before: 1-34 / F, Qianhai free trade building, 3048 Xinghai Avenue, Mawan, Qianhai Shenzhen Hong Kong cooperation zone, Shenzhen, Guangdong 518000

Applicant before: Ping An International Smart City Technology Co.,Ltd.

TA01 Transfer of patent application right
GR01 Patent grant
GR01 Patent grant