Python 没有类似字符的密码迭代?
我正在读这篇文章,它启发我研究如何优化简单生成密码的暴力强制 我的遭遇: 我正在尝试从Python 没有类似字符的密码迭代?,python,Python,我正在读这篇文章,它启发我研究如何优化简单生成密码的暴力强制 我的遭遇: 我正在尝试从key=''.join(random.sample(string.uppercase,7))迭代所有可用的密码组合。如果我读对了文档:key在这种情况下,不能由两个相似或相等的字母组成。它始终是(在本例中)唯一的7长大写字符串 示例:str(键)无法生成:AARGHJU 问题: 如何更改while语句,使其不会迭代包含类似字母的字符串 chars = 'ABCDEFGHIJKLMNOPQRSTUVXYZ'
key=''.join(random.sample(string.uppercase,7))
迭代所有可用的密码组合。如果我读对了文档:key
在这种情况下,不能由两个相似或相等的字母组成。它始终是(在本例中)唯一的7长大写字符串
- 示例:
无法生成:str(键)
AARGHJU
chars = 'ABCDEFGHIJKLMNOPQRSTUVXYZ' # chars to look for
try:
while 1:
# Iteration processess of possibel keys
for length in range(7,8): # only do length of 7
to_attempt = product(chars, repeat=length)
for attempt in to_attempt:
print(''.join(attempt))
except KeyboardInterrupt:
print "Keybord interrupt, exiting gracefully anyway."
sys.exit()
发电ex将产生不必要的时间和功率:
AAAFXEL
AAAFXEM
AAAFXEN
AAAFXEO
AAAFXEP
AAAFXEQ
AAAFXER
AAAFXES
对于整个空间的非重复枚举,可能需要itertools.permutations
```python
from itertools import permutations
chars = 'ABCDEFGHIJKLMNOPQRSTUVXYZ' # chars to look for
try:
while 1:
# Iterate through possible keys
for length in range(7,8):
to_attempt = permutations(chars, length)
for attempt in to_attempt:
print(''.join(attempt))
except KeyboardInterrupt:
print "Keyboard interrupt, exiting gracefully anyway."
sys.exit()
```
我不明白你从哪里得到这个要求的。当然,强制使用唯一字母会降低密码的强度,因为它会减少每个连续字母的潜在值范围?是的,没错。也许我更新后的问题会对我的长度范围(7,8)的问题
有所帮助这只输出7。那你为什么要用它呢?@Lafexlos你能详细说明一下你要找的是什么吗?但是对于这么多的物品,你很可能会得到memoryError。谢谢你的回答!有可能从一个特定的点开始排列吗?假设我运行了10分钟的代码,结果是在ATJOIRE
。然后是否可以从该点“恢复”。您可以使用itertools.dropwhile
。或者,您可以构建自己的实现。