讨论: random 模块使用 Mersenne Twister 算法来计算生成随机数。这是一个确定性算法, 但是可以通过 random.seed()函数来修改初始化种子。比如:
random.seed() # Seed based on system time or os.urandom()
random.seed(12345) # Seed based on integer given
random.seed(b"bytedata") # Seed based on byte data
(书上的英文注释就是这样,以后碰到了再搞明白吧)
除了上述介绍的功能, random 模块还包含基于均匀分布、高斯分布和其他分布的随机数生成 函数。比如,random.uniform() 计算均匀分布随机数,random.gauss()计算正态分布 随机数。
在 random 模块中的函数不应该用在和密码学相关的程序中。如果确实需要类似的功能,可以 使用 ssl 模块中相应的函数。比如, ssl.RAND_bytes() 可以生成一个安全的随机字节 序列。