【发布时间】:2015-09-01 10:32:41
【问题描述】:
我正在寻找一种在 Python 中生成 n 个字节的随机字符串的方法,该方法类似于os.urandom() 方法,只是提供了一种数据生成种子的方法。
到目前为止我有:
def genRandData(size):
buf = chr(random.randint(0,255))
for i in range(size-1):
buf = buf + chr(random.randint(0,255))
return str(buf)
但是这个函数很慢,在我的机器上生成一兆字节的数据大约需要 1.8 秒。有什么方法可以改善这一点(或者另一种方法是播种 os.urandom)。
【问题讨论】:
-
FWIW,
urandom从随机系统噪声中获得随机性(请参阅the Linux man page for urandom),因此允许它可播种是没有意义的。缺乏可种子性对于测试事物来说很烦人,但 OTOH 使它成为加密目的的有用随机性来源。我想这与您的问题并不真正相关,但至少它解释了为什么没有办法播种它。 :)