我需要帮助了解如何计算我的脚本进度的百分比,因为它需要一段时间,具体取决于[CPU,时钟速度,RAM和目标password_list的长度]。
你能指出我正确的方向,还是向我展示如何计算这个?
import itertools, math
Alphabet = ("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890") # Add or remove whatevs you think will be in the password you're cracking (example, [symbols])
counter = 1
CharLength = 1
start_range = int(raw_input("Enter start range: ") # <<< To begin brute force
end_range = int(raw_input("Enter end range: ")) # <<< To end brute force
filename = "bruteforce_%r-%r.txt" % (start_range, end_range)
以下是进行计算的地方;不幸的是,百分比只是我的大脑不会让我理解他们:/
# Math below don't let it bore you :)
y = len(Alphabet)
x = len(start_range)
total = math.pow(x, y)
f = open(filename, 'a')
# Math above don't let it bore you :(
第一个for循环
for CharLength in range(start_range, end_range):
passwords = (itertools.product(Alphabet, repeat = CharLength))
第二个循环
for i in passwords:
counter += 1
i = str(i)
i = i.replace("[", "")
i = i.replace("]", "")
i = i.replace("'", "")
i = i.replace(" ", "")
i = i.replace(",", "")
i = i.replace("(", "")
i = i.replace(")", "")
f.write(i)
f.write('\n')
print "%r: %r" % (i, percentage) # <--- *Display percentages on second format argument
pass
答案 0 :(得分:3)
使用python-progressbar。从他们的git repo:
ProgressBar
类管理当前进度和格式 该行由许多小部件给出。小部件是一个对象 可能会根据进度条的状态显示不同的内容。 有三种类型的小部件:
一个字符串,始终显示自己
一个
ProgressBarWidget
,每次调用更新方法时都可能返回不同的值
ProgressBarWidgetHFill
,类似于ProgressBarWidget
,但它会展开以填充该行的剩余宽度。
示例:
import progressbar as pb
progress = pb.ProgressBar(widgets=_widgets, maxval = 400000).start()
progvar = 0
for i in range(400000):
# Your code here
progress.update(progvar + 1)
progvar += 1
输出:
Progress: |#################################################### |80%