我使用Python生成4位数的随机数,但我需要将其加密。我在下面解释我的代码。
range_start = 10 ** (4 - 1)
range_end = (10 ** 4) - 1
password = randint(range_start, range_end)
这里我生成了4位数的随机数,但它不包含任何加密技术,我需要将其加密为随机数。
答案 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]
例如,将过滤掉数字组只有一个成员(即只包含重复的一位数)的那些。