首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Python 2.7中使用Intel RDRAND

在Python 2.7中使用Intel RDRAND
EN

Stack Overflow用户
提问于 2016-12-30 17:34:12
回答 2查看 410关注 0票数 0

我想在Windows上使用Intel的RDRAND特性,并生成真正的随机数(因为Python的随机模块不是那么随机的)。Python中有没有可以访问此功能的API?

我已经尝试安装下面评论中提到的rdrand模块,但我一直收到错误。日志:http://pastebin.com/A2Vqsqec

错误似乎是由rdrand.c中的以下几行抛出的:

代码语言:javascript
复制
#ifdef __GNUC__
#define USING_GCC 1
#elif __clang__
#define USING_CLANG 1
#else
#error Only support for gcc or clang currently
#error if you port to another compiler, please
#error send back the patch to https://github.com/stillson/rdrand
#endif

为什么会发生这种情况?

更新:我已经检查并确保定义了__GNUC__

EN

回答 2

Stack Overflow用户

发布于 2017-11-14 05:59:50

您可能希望使用Python来包装C/C++例程,而不是使用RdRand()的Python实现。这里的一篇研究论文(http://iopscience.iop.org/article/10.3847/1538-4357/aa7ede/meta;jsessionid=A9DA9DDB925E6522D058F3CEEC7D0B21.ip-10-40-2-120),或者说这里的非付费版本(https://arxiv.org/abs/1707.02212)最近显示了RdRand()在Python语言中的性能有多差。尽管如此,正如论文提到的那样,RdRand和RdSeed指令并不是“真正”随机的……

希望这能有所帮助。

票数 0
EN

Stack Overflow用户

发布于 2018-12-02 06:27:27

你不一定需要RDRAND来保证质量的随机性。random模块的文档说明:

如果需要加密安全的伪随机数生成器,请使用os.urandom()SystemRandom

os.urandom(n)的文档中写道:

返回适合加密使用的n个随机字节的字符串。

此函数从特定于操作系统的随机性来源返回随机字节。返回的数据对于加密应用程序来说应该是不可预测的,尽管其确切的质量取决于操作系统的实现。在类UNIX系统上,它将查询/dev/urandom,而在Windows上,它将使用CryptGenRandom()

SystemRandom是基于urandom的。

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

https://stackoverflow.com/questions/41393847

复制
相关文章

相似问题

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