使用python生成6位密码

时间:2016-02-22 11:06:30

标签: python cryptography

我想构建生成6位密码的python算法。我有很多想法,比如:基于时间,基于id ......等等,但是一旦算法暴露出来,就没有听起来很安全。现在我正在尝试使用random.randint(a, b)生成它,但是我想知道它是如何工作的并且python文档没有提供太多关于它。那么请你提供更多关于这个或任何其他建议来生成6位数的密码。

4 个答案:

答案 0 :(得分:1)

默认情况下,此方法会返回一个6个数字大小的字符串,如果传入的值与传入的数字一样多。

import string
import random

def id_generator(size=6, chars=string.digits):
    return ''.join(random.choice(chars) for x in range(size))
  

打印(id_generator())

     

123123

     

打印(id_generator(10))

     

1234512345

答案 1 :(得分:1)

安全实现此操作的最简单方法是使用操作系统的随机数生成器(random.SystemRandom()或os.urandom(n))来生成数字。对于使用默认生成器,official documentation有一个很好的警告。

一点需要注意的是,SystemRandom()显然不能在所有系统上运行,但我可以告诉no one's quite sure哪些系统不支持它。

除此之外,random.SystemRandom()。randint()应该可以正常工作。

答案 2 :(得分:0)

您可以尝试将其作为一个非常简单的解决方案:

#!/usr/bin/env python

from random import choice
from string import digits

code = list()
for i in range(6):
    code.append(choice(digits))

print ''.join(code)

输出类似:

455799

答案 3 :(得分:-1)

您始终可以使用直接方法,尽管这比Python更像Fortran。您还可以将其用作密钥生成器。

{{1}}