'int'对象不是可迭代的python暴力密码

Rob*_*old 3 python for-loop brute-force zipfile

即使语法似乎都正确我仍然抛出输出错误,为什么它会在输出上抛出这个?(请忽略我的不良缩进).

import zipfile
myZip = zipfile.ZipFile("/mydile.zip")
count = 0
for x in range(0,1005310):
   password = count
   count += 1
   try:
      myZip.extractall(pwd = password)
      print(password)
except Exception as e:
      print(e)
print "Sorry, password not found."
Run Code Online (Sandbox Code Playgroud)

Sim*_*mon 5

count = 0
Run Code Online (Sandbox Code Playgroud)

count 是一个整数.

password = count
Run Code Online (Sandbox Code Playgroud)

password 是一个整数.

myZip.extractall(pwd = password)
Run Code Online (Sandbox Code Playgroud)

这不可能是对的. pwd必须具有字符串的值.您可以使用将其转换为字符串str()

正如Ryan所说,这正是你必须要做的.

myZip.extractall(pwd = str(password))
Run Code Online (Sandbox Code Playgroud)

你不能放在str()其他任何地方,因为到目前为止你正在执行算术,你不能在没有转换的情况下对字符串进行算术运算.


请记住,只有密码是整数时,这种暴力方法才有效.这是非常不可能的,因此您可能还想要包含字符.这个职位,如果你决定这样做可能有一些用处.