2017-08-25 930 views
-3

我正在使用Python生成4位数的随机数,但我需要包含使其成为密码。我在下面解释我的代码。如何使用Python生成4位密码随机数

range_start = 10 ** (4 - 1) 
range_end = (10 ** 4) - 1 
password = randint(range_start, range_end) 

这里我生成4位数的随机数,但它不包含任何密码术,我需要使它成为密码随机数。

+5

我不知道什么是“照片上的随机数字”。你需要澄清你在找什么。 – Blckknght

+0

我也不知道。提醒一下,有uuid'str(uuid.uuid4()。int >> 64)[0:4]'。 –

+0

@Blckknght:抱歉拼写错误。我已经更新了它。 – satya

回答

1

如果您在Python 3.6中生成PIN码,请使用n = secrets.choice(range(1000, 10000));然后format(n, '04'),然后过滤掉不需要的组合。

如果你被Python 2困住,random.SystemRandom将生成密码更安全的随机数;使用

from random import SystemRandom 
sr = SystemRandom() 
n = sr.choice(xrange(1000, 10000)) 
pin = format(n, '04') 
print(pin) 

随着choice你也可以预滤器pincodes:

all_pins = [format(i, '04') for i in range(1000, 10000)] 
possible = [i for i in all_pins if len(set(i)) > 1] 

会过滤掉那些数字其组只有一个成员(即由只重复一个数字的),例如。

+0

我正在使用python版本2.7。 – satya

+0

@StefanPochmann是的,它是有效的,我只是教他们'选择',以便下次他们不说“那么选择序列怎么样” –