[发明专利]一种恢复被损坏的ZIP压缩文件的方法有效
申请号: | 202011599777.6 | 申请日: | 2020-12-30 |
公开(公告)号: | CN112667583B | 公开(公告)日: | 2022-11-04 |
发明(设计)人: | 梁效宁;朱星海;陆宇轩 | 申请(专利权)人: | 四川效率源信息安全技术股份有限公司 |
主分类号: | G06F16/174 | 分类号: | G06F16/174;G06F11/14 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 641000 四*** | 国省代码: | 四川;51 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 恢复 损坏 zip 压缩文件 方法 | ||
1.一种恢复被损坏的ZIP压缩文件的方法,其特征在于包括以下步骤:
S100:根据Deflate压缩数据流中的第一码长序列,构建第一Huffman码表;
S200:对于SQ1编码流的情况:构建第二Huffman码表,执行步骤S400;
S300:对于SQ2编码流的情况:构建第三Huffman码表,执行步骤S400;
S400:判断当前解码位置是否为LIT编码流/DIST编码流末尾,如果是,执行步骤SC00,否则,执行步骤S500;
S500:按比特位取LIT编码流/DIST编码流数据作为码字,根据第二Huffman码表及第三Huffman码表进行解码,获取解码数据;
S600:判断数据解码是否成功,如果是,执行步骤S800,否则,执行步骤S700;
S700:将LIT编码流/DIST编码流前移一个比特位,执行步骤S400;
S800:判断当前解码数据是否为结束标志,如果是,执行步骤SA00,否则,执行步骤S900;
S900:将当前解码数据写入中间解码流,将LIT编码流/DIST编码流由低位向高位移动N个比特位,其中,N为码字的比特位数;
SA00:判断码字是否位于LIT编码流/DIST编码流末尾,如果是,执行步骤SC00,否则,执行步骤SB00;
SB00:将LIT编码流/DIST编码流前移一个比特位,执行步骤S400;
SC00:采用无损压缩算法解码中间解码流并获取最终解码流,确认并检查解压数据。
2.根据权利要求1所述的一种恢复被损坏的ZIP压缩文件的方法,其特征在于,所述步骤S100包含以下步骤:
根据Deflate压缩数据流的数据结构及第一码长序列,构建第一Huffman码表,其中,Deflate压缩数据流的数据结构如表1所示,其包括第一码长序列、SQ1编码流、SQ2编码流、LIT编码流/DIST编码流。
表1:Deflate压缩数据流的数据结构
3.根据权利要求1所述的一种恢复被损坏的ZIP压缩文件的方法,其特征在于,所述步骤S200包括以下步骤:
S201:根据第一Huffman码表,解码出SQ1编码流并获取SQ1序列;
S202:游程解码SQ1序列,获取第二码长序列;
S203:根据第二码长序列,构建第二Huffman码表,执行步骤S600。
4.根据权利要求1所述的一种恢复被损坏的ZIP压缩文件的方法,其特征在于,所述步骤S300包括以下步骤:
S301:根据第一Huffman码表,游程解码SQ2编码流并获取SQ2序列;
S302:游程解码SQ2序列,获取第三码长序列;
S303:根据第三码长序列,构建第三Huffman码表,执行步骤S600。
5.根据权利要求1所述的一种恢复被损坏的ZIP压缩文件的方法,其特征在于,所述步骤S400中,当编码流解码结果为-1,表示到达LIT/DIST编码流末尾。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于四川效率源信息安全技术股份有限公司,未经四川效率源信息安全技术股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202011599777.6/1.html,转载请声明来源钻瓜专利网。