我正在学习道德黑客技术。我有一个密码的哈希密钥和加密算法(sha256 / sha512)。我想从文件中解析所有字符串,并检查密码的哈希是否与文件中每个字符串的哈希匹配。
生成的字符串可能包含小写字母、大写字母和数字。
有什么办法可以生成长度为n的所有可能包含字母和数字的字符串吗?
我正在学习道德黑客技术。我有一个密码的哈希密钥和加密算法(sha256 / sha512)。我想从文件中解析所有字符串,并检查密码的哈希是否与文件中每个字符串的哈希匹配。
生成的字符串可能包含小写字母、大写字母和数字。
有什么办法可以生成长度为n的所有可能包含字母和数字的字符串吗?
62 ** length
,
因此为了测试目的,请使用 较小的值 来设置 length:import string
import itertools
def generate_strings(length=3):
chars = string.ascii_letters + string.digits # "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
for item in itertools.product(chars, repeat=length):
yield "".join(item)
n
(生成的字符串长度)。 - CristiFatiitertools.product
:print([''.join(x) for x in itertools.product('abcABC123', repeat=3)])
['aaa',
'aab',
'aac',
'aaA',
'aaB',
'aaC',
'aa1',
'aa2',
'aa3',
'aba',
...
只需将您需要的其余字符添加到输入字符串中。 您可以使用 strings
模块中的常量来实现这一点。
请注意,这会快速增加。 ;)
itertools.product
。from itertools import product
from string import ascii_letters, digits
for i in product(ascii_letters + digits, repeat=n):
print(''.join(i))
repeat=n
,那么会引发TypeError
吗? - CristiFati
itertools.product
(并带有repeat=n
)可能会很方便。 - CristiFati高级密码恢复hashcat。 - zaph