+-
python – Pycrypto的Random.get_random_bytes和一个简单的随机字节生成器有什么区别?
我在 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方法更加密码“声音”.查看随机文档,它表示它基于一个周期为2 ** 19937-1的生成器.查看Random.get_random_bytes,它表明它能够生成加密强字节.那是什么意思?

当然,我希望使用库实现,而不是我自己的.我只是想了解它背后的加密概念.

最佳答案
对于加密安全的随机数生成器,任何输出序列都不会为您提供下一个输出的信息.

随机是基于Mersenne Twister.它的内部状态为624个32位数字.给定1248个值的输出,您可以在某个时刻知道整个状态.由此您可以100%准确地确定未来的所有产出.

点击查看更多相关文章

转载注明原文:python – Pycrypto的Random.get_random_bytes和一个简单的随机字节生成器有什么区别? - 乐贴网