【发布时间】:2014-03-14 03:15:30
【问题描述】:
我在Pycrypto遇到了这个方法,用来生成随机字节:
from Crypto import Random
Random.get_random_bytes(5)
我想知道这种方法与下面的简单生成器有何不同:
import random
def get_random_bytes(N):
ASCII = "".join(chr(x) for x in range(255))
return "".join(random.choice(ASCII) for _ in range(n))
注意:我的直觉是 Pycrypto 方法在密码学上更“可靠”。查看random的文档,它说它是基于一个生成器,周期为2**19937-1。查看Random.get_random_bytes,它声明它能够生成加密强字节。这是什么意思?
当然,我希望使用库实现,而不是我自己的。我只是想了解它背后的密码学概念。
【问题讨论】: