一个CRC32爆破的例子

本文通过一个实际例子展示了如何使用CRC32校验来破解10位以上密码保护的压缩文件。由于文件内容只有4个字节,可以通过遍历所有可能的ASCII值,计算CRC32码并与原始值比较,以还原被保护的文本。
摘要由CSDN通过智能技术生成

先给题目:

   

给出这麽一个文件,解压要密码,然后密码位数10位+,求问如何还原1-7的txt中的内容?



解题:

思路很明确,压缩文件密码太长,不可爆破,而文件才4个字节,其中对应的ASCII码的值是可琼举的,那我把它全部穷举然后算一下CRC32码,跟原来的比一下不久完事了吗?

好,思路清楚了,我们下面写代码就完事了

代码如下:

#!/usr/bin/env python

# -*- coding:utf-8 -*-
import datetime
import binascii

def showTime():

    print datetime.datetime.now().strftime("%H:%M:%S")  

def crack():
    crcs = set([0xE761062E, 0x2F9A55D3, 0xF0F809B5,
        0x645F52A4, 0x0F448B76, 0x3E1A57D9, 0x3A512755])
    r = xrange(32, 127)
    for a in r:
        for b in r:
            for c in r:
                for d in r:
                    txt = chr(a)+chr(b)+chr(c)+chr(d)
                    crc = binascii.crc32(txt)
          
  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值