所以我做了一个密码生成器
char = random.choice(string.punctuation)
numb = str(random.randrange(0, 10))
upper = random.choice(string.ascii_uppercase)
lower1 = random.choice(string.ascii_lowercase)
lower2 = random.choice(string.ascii_lowercase)
lower3 = random.choice(string.ascii_lowercase)
lower4 = random.choice(string.ascii_lowercase)
lower5 = random.choice(string.ascii_lowercase)
lower6 = random.choice(string.ascii_lowercase)
lower7 = random.choice(string.ascii_lowercase)
print("Your randomly generated password is:",
char + numb + upper + lower1 + lower2 + lower3 + lower4 + lower5 + lower6 +lower7)
然后我陷入了一个密码学的虫洞,我安装了这个库,并利用fernet创建了一个加密密钥
修补了几个小时后,我碰上了一堵墙
我想使用fern给我的加密随机字节来构建密码,但密码有44个字符长,有时不包括大写字母/符号等
我试过了:
p = os.random(4)
这解决了长度问题,但有时仍会吐出无法使用的密码
如何使用os.urandom
构建可行的12char密码
(1个大写字母,1个小写字母,1个符号,1个数字)
我想您应该特别使用
os.urandom
来构建具有特定规范的密码,这些规范至少是一个上限、一个下限、一个数字和一个符号由于密码首先是随机生成的,然后检查它是否符合某些标准,有时测试将失败,特别是如果密码长度较短,则必须再次运行该程序
多亏了那些给我想法的人,我自己找到了答案
虽然我无法找到将Fernet字节数据直接转换为密码的方法,但我对密码学做了更深入的研究,了解了什么是真正随机的还是伪随机的
下面的代码是我为将来遇到与我相同问题的人确定的
它的作用:
这是一个有趣的项目,我一定会很快重新审视它,使它更简单、更有效,如果你有任何想法,请不要不好意思给我留言
相关问题 更多 >
编程相关推荐