使用 python 进行暴力破解

do bruteforcing with python

我想使用 python 进行暴力破解,但要使用特殊参数。 到目前为止我得到了

import os
##########################

#########algarithm#########
x=0
for x in range(10,21):
 char=itertools.product("0123546798ABCDEFGHIJKLMNOPQRSTUVWXYZ#$qwertyuiopasdfghjklzxcvbnm",repeat=x)
 for pin in char:
  pinready=''.join(pin)
  print(pinready)

问题是它遍历每一个并且花费的时间太长。

我希望前三个字符是 @、#、$ 或 A-Z

接下来的三个是A-Z,a-z

最后4个是数字

请问有什么方法可以基本自定义暴力破解。

from random import choices
from string import ascii_lowercase, ascii_uppercase

letters = ascii_lowercase + ascii_uppercase
symbols = "@#$" # Add more here if required
numbers = "0123456789"

no_of_pins = 10

def generate_pin():
  a = choices(letters + symbols, k=3)
  b = choices(letters, k=3)
  c = choices(numbers, k=4)

  return "".join(a + b + c)

for i in range(no_of_pins):
  pin = generate_pin()
  print(pin)

示例输出:

wPRgne7054
ijZdJl5401
NCLneF2148
fxMEKV4586
RBBeSH7274
GHwfuB4891
bcjKXj3297
DDGIZe0561
NYtLXj7352
$LOYCl4773