如何解决如果密码以数字开头,是否有更简单的方法来重新生成密码?
我正在尝试构建这个非常简单的“密码生成器”,我想知道如果密码以整数开头,是否有更简单的方法来生成新密码
choices = string.ascii_letters + string.digits
randomPass = random.sample(choices,length)
password = "".join(randomPass)
password1 = "".join(randomPass)
#checks password
if password[0].isdigit():
print("password started with number generating another password...")
if password1[0].isdigit():
print("started with a number again,trying again...")
else:
print(password1)
else:
print(password)
我这样做的方式根本没有效率,无论我这样做多少次,我仍然有机会在开头生成一个带有数字的密码,但我确信使用循环会消除数字可能是密码中的第一个字符,这会让生活变得更轻松,我只是不知道如何,有人可以帮忙吗?
解决方法
代码的直接修复是循环:
while password[0].isdigit():
print("password started with number generating another password...")
password = "".join(random.sample(choices,length))
然而,更好的是首先构造一个合法的密码:仅从字母中获取第一个字符:
choices = string.ascii_letters + string.digits
first_letter = random.choice(string.ascii_letters)
randomPass = first_letter + ''.join(random.sample(choices,length-1))
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。