使用python生成唯一的密码

mic*_*ltm 0 python random

我使用一个简单的python脚本生成数千个长度为16的随机密码.

但有没有办法检查密码是否唯一,即在打印之前已经生成了密码?

这是实际的脚本:

import os, random, string

length = 16
chars = string.ascii_letters + string.digits + '!?@#%&'
random.seed = (os.urandom(1024))

result=[];

for num in range(0,100):

result.append(''.join(random.choice(chars) for i in range(length)));

for i in result:
   print i
Run Code Online (Sandbox Code Playgroud)

g.d*_*d.c 5

如果将结果更改为a set并使用其add方法,则将确保设计没有重复.

result = set() # {} literal syntax works in 2.x
while len(result) < 1000:
  result.add(''.join(random.choice(chars) for i in range(length))) 
Run Code Online (Sandbox Code Playgroud)