好的,所以我找到了一个随机密码生成器,它的工作效果令人惊讶,但有两件事我想知道。 1.为什么它最多只打印32个字符,如何才能打印更多? 2.(可选,但它与第一名有关)为什么它总是在中间打印四号?
这是代码。
import uuid
def my_random_string(string_length=100):
"""Returns a random string of length string_length."""
random = str(uuid.uuid4()) # Convert UUID format to a Python string.
random = random.upper() # Make all characters uppercase.
random = random.replace("-","") # Remove the UUID '-'.
return random[0:string_length] # Return the random string.
while True:
print(my_random_string(100)) # For example, D9E50C
my_random_string()
答案 0 :(得分:1)
如果您想要随机密码生成器,请编写其中一个。不要使用UUID,不仅因为长度复杂(它将以32个字符为单位),而且因为密码只包含数字和A-F。
您可以使用以下内容:
import random
import string
def passgen(n = 12):
possible_lettters = string.ascii_letters + string.digits
return ''.join(random.choice(possible_lettters ) \
for x in range(n))
In [92]: print(passgen(30))
cjBQgGJO5nlEyMlP2fdiZ6ra4IvDzF
请注意,possible_lettters
此处由大写和小写字母组成,并设置区分大小写的密码。但是,您当然可以将string.ascii_letters
替换为string.ascii_uppercase
,以获取仅包含大写字符的密码。
答案 1 :(得分:0)
随机密码生成器,它将使用用户定义的字符数生成密码:
from random import randint
def passwordgen(characters):
chars = '1234567890qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM'
password = ''
for i in range(0, characters):
password = password + chars[randint(0, len(chars))]
return password