gpt4 book ai didi

python - Pycrypto 的 Random.get_random_bytes 和一个简单的随机字节生成器有什么区别?

转载 作者:太空狗 更新时间:2023-10-30 01:08:23 25 4
gpt4 key购买 nike

我在 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,它声明它能够生成加密强度高的字节。这是什么意思?

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

最佳答案

对于加密安全的随机数生成器,任何输出序列都不会为您提供关于下一个输出是什么的信息。

随机基于 Mersenne Twister。它具有 624 个 32 位数字的内部状态。给定 1248 个值的输出,你在某个时候知道整个状态。由此您可以 100% 准确地确定所有 future 的输出。

关于python - Pycrypto 的 Random.get_random_bytes 和一个简单的随机字节生成器有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22395478/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com