【发布时间】:2021-09-08 15:32:21
【问题描述】:
所以我做了一个密码生成器
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 构建一个可行的 12 字符密码
(1个大写,1个小写,1个符号,1个数字)
【问题讨论】:
-
您是否只想使用
os.urandom。因为您的代码可以简化为足够好的解决方案。 -
改用
secrets。可怕的名字,但我猜random已经被占用了。请注意,如果您开始计算变量名,那么您做错了:计算机应该进行计数,而不是您:) -
顺便说一句,如果您想在密码中包含特定数量的项目,您可能需要安全地洗牌。 Here's a way to do that 但将
sample替换为secrets.belowThingy方法。
标签: python cryptography