Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/335.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用python的暴力_Python_Brute Force - Fatal编程技术网

使用python的暴力

使用python的暴力,python,brute-force,Python,Brute Force,我有一个可执行程序,它接受一个四位数的pin码作为组合。我应该用python脚本破解这个程序。到目前为止,我得到了这个。当我执行这个时,它只打印9999。所以我得到了“错误的pin码:9999”。请帮忙 import itertools import os numbers = '0123456789' y = '' for c in itertools.product(numbers, repeat=4): pin = y+''.join(c) print pin os.system(

我有一个可执行程序,它接受一个四位数的pin码作为组合。我应该用python脚本破解这个程序。到目前为止,我得到了这个。当我执行这个时,它只打印9999。所以我得到了“错误的pin码:9999”。请帮忙

import itertools
import os

numbers = '0123456789'
y = ''
for c in itertools.product(numbers, repeat=4):
    pin = y+''.join(c)
print pin
os.system("./xyz "+pin)

注意识别:

import itertools
import os

numbers = '0123456789'
y = ''
for c in itertools.product(numbers, repeat=4):
    pin = y+''.join(c)
    print pin
    os.system("./xyz "+pin)

正如莫里斯·迈耶所说:压痕是错误的

另外:使用
itertools.product
,这有点复杂。我想你想解决把1变成“0001”的问题,你可以使用
zfill

for i in range(10000):
    pin = str(i).zfill(4)
    os.system("./xyz "+pin)

你有缩进问题。您对操作系统的调用在循环之外。作为旁注,
y+''。join(c)
''完全相同。join(c)
,何必费心。识别最后两行,你就可以继续使用了。为什么要使用
y+''。join(c)
?它已经是一个字符串了,Python不需要类型强制…使用
itertools.product
在这方面做得太过分了。您希望从0循环到9999,并格式化该数字,使其始终为4个数字长,例如,范围(10000)内的i的
:pin=“{0:04d}.format(i)
非常感谢您的快速回复。我是编程方面的新手。它成功了!