不用密码解密压缩文件(CRC32算法)

您所在的位置:网站首页 winrar加密与解密密码可以不同吗 不用密码解密压缩文件(CRC32算法)

不用密码解密压缩文件(CRC32算法)

2024-07-09 09:23| 来源: 网络整理| 查看: 265

4.Rar file without password

rar的压缩文档中是提供一个CRC32的值,这个值是文档在压缩之前的CRC32值,相信很多人都知道:每个不同的文件都有基本唯一的一个CRC32值。

CRC全称为循环冗余校验(Cyclic Redundancy Check, CRC),用来校验文件是否出错但并不能用于自动纠错。这种爆破方式只适用于文本文件较小的情况下,如果很大,不如去爆破密码。基本上不同文件都有唯一的CRC32值,那么在文件内容较小的情况下就更不可能重复了。 因为txt文本中的内容较短,所以我们可以用暴力穷举文本内容,只要找到相同的CRC码,即找到正确的文本内容。 源代码:CRC32.py

import binascii #import string #各种打印字符 #dic=string.printable dic=range(0,128) crc = 0x05665E74 # 记得要以0x开头 def CrackCrc(crc): for i in dic : for j in dic: for p in dic: s = str(chr(i)+chr(j)+chr(p)).encode("utf-8") #在 Python 2.x 的版本中,binascii.crc32 所计算出來的 CRC 值域为[-2^31, 2^31-1] 之间的有符号整数,为了要与一般CRC 结果作比对,需要将其转为无符号整数,所以加上& 0xffffffff来进行转换。 # 如果是 Python 3.x 的版本,其计算结果为 [0, 2^32-1] 间的无符号整数,因此不需额外加上& 0xffffffff 。 #if crc == (binascii.crc32(s) & 0xffffffff): if crc == binascii.crc32(s): #Python3中字符都为unicode编码,必须先转码utf-8 print(str(s,'utf-8')) print("CRC冲撞攻击解密的明文为:"+str(s,'utf-8')) CrackCrc(crc)

实验结果截图: 在这里插入图片描述

最后rate.rar中的rate.txt解密的明文为:77%。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3