首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >random.SystemRandom().choice() vs random.choice()

random.SystemRandom().choice() vs random.choice()
EN

Stack Overflow用户
提问于 2019-12-25 05:12:20
回答 2查看 1.2K关注 0票数 5

python中的random.SystemRandom().choice()random.choice()有什么不同?

我在不止一个地方有seen the former being used。但它没有提到py2py3文档。

EN

回答 2

Stack Overflow用户

发布于 2019-12-25 05:40:16

random.SystemRandom是一个用于加密的随机数生成器类。它使用os.urandom作为底层字节流;os.urandom从依赖于操作系统的加密随机数源中提取,有时是/dev/urandom (但并不总是如此,即使/dev/urandom存在。

SystemRandom类提供了random模块自己执行的所有随机数生成方法,其含义相同,只是使用密码学RNG来实现它们。random.choiceSystemRandom实例的choice方法都从输入序列中随机选择,但只有SystemRandom适合加密使用。对手可以毫不费力地预测到random.choice的选择。

票数 8
EN

Stack Overflow用户

发布于 2019-12-25 05:17:53

documentation for random.choice()中,它从作为参数提供给函数的序列中返回一个随机元素。如果序列不存在,则返回错误。正确的函数调用是

代码语言:javascript
复制
random.choice(someSequence)

在同一个页面中,您可以看到random.SystemRandom()只是一个从操作系统资源生成随机数的替代生成器,并不是在所有系统上都可用。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59473439

复制
相关文章

相似问题

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