首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Pycrypto的Random.get_random_bytes和一个简单的随机字节生成器有什么区别?

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

Stack Overflow用户
提问于 2014-03-14 03:15:30
回答 1查看 4.3K关注 0票数 5

我在皮尔密多中遇到了这个方法,它用于生成随机字节:

代码语言:javascript
运行
复制
from Crypto import Random
Random.get_random_bytes(5)

我想知道这个方法与下面这样的简单生成器有什么不同:

代码语言:javascript
运行
复制
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,它说它能够产生加密的强字节。这是什么意思?

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

EN

Stack Overflow用户

回答已采纳

发布于 2014-03-14 03:31:31

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

随机是基于Mersenne Twister。它的内部状态为624 32位数.给定1248个值的输出,您可以在某个点了解整个状态。由此,你可以用100%的准确性来决定未来的所有输出。

票数 5
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22395478

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档