如何使用Python生成4位加密随机数

时间:2017-08-25 06:17:11

标签: python random

我使用Python生成4位数的随机数,但我需要将其加密。我在下面解释我的代码。

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

这里我生成了4位数的随机数,但它不包含任何加密技术,我需要将其加密为随机数。

1 个答案:

答案 0 :(得分:1)

如果您要生成 pin code ,请在Python 3.6中使用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,您还可以预过滤pincode:

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

将过滤掉数字组只有一个成员(即只包含重复的一位数)的那些。