Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/364.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在Windows上模拟/dev/random_Python_Windows_Linux_Random - Fatal编程技术网

Python 在Windows上模拟/dev/random

Python 在Windows上模拟/dev/random,python,windows,linux,random,Python,Windows,Linux,Random,我正在尝试将python代码从linux移植到windows。在不同的地方,通过读取/dev/random生成随机数。有没有办法在Windows上模拟/dev/random 我正在寻找一种解决方案,使代码能够在linux上使用…您可以从Python的标准库中使用。如果您使用的是Python,为什么要关心具体的实现?只要使用它,让它来处理它 除此之外,(如果您不能依赖软件状态)还提供基于操作系统的随机值: 在类UNIX系统上,这将查询/dev/uradom,在Windows上则是查询 将使用Cry

我正在尝试将python代码从linux移植到windows。在不同的地方,通过读取/dev/random生成随机数。有没有办法在Windows上模拟/dev/random


我正在寻找一种解决方案,使代码能够在linux上使用…

您可以从Python的标准库中使用。

如果您使用的是Python,为什么要关心具体的实现?只要使用它,让它来处理它

除此之外,(如果您不能依赖软件状态)还提供基于操作系统的随机值:

在类UNIX系统上,这将查询/dev/uradom,在Windows上则是查询 将使用CryptGenRandom

(请注意,它为此提供了一个很好的接口)

如果你真的认真对待它的加密随机性,你可能想检查一下。

你可以打电话。这将在Windows和Linux上的/dev/uradom上使用


否则,总有Cygwin的/dev/random?

/dev/random在安装Cygwin时可用。在Cygwin控制台窗口中,您可以运行以下命令:

tom@myHost ~
$ hexdump -C -n 8 /dev/random
00000000  4f 9d 57 cc 9a 01 aa cb                           |O.W.....|
00000008
假设将Cygwin的bin目录添加到路径中,也可以在窗口命令提示符窗口中运行该命令,但它只能使用Cygwin命令工作

Microsoft Windows [Version 10.0.18363.778]
(c) 2019 Microsoft Corporation. All rights reserved.

C:\Users\tom>hexdump -C -n 8 /dev/random
00000000  01 99 93 1d 51 f0 dd f4                           |....Q...|
00000008

不知道这对你有没有帮助!我认为,如果没有一些技巧,您将无法将其用作可以从应用程序内部读取的设备文件,例如:请参见

这可能会有所帮助:感谢您的快速响应!我已经找到了,但我想找到一个解决方案,使代码在linux上可用。在链接页面中:“Mersenne Twister是现有测试最广泛的随机数生成器之一。但是,由于完全确定性,它不适用于所有目的,并且完全不适合用于加密目的。”因此,它不是/dev/random(加密随机)的替代品OP没有提到任何加密目的,random.SystemRandom(在random.*中)使用适合加密的os.Uradom。我刚刚想到,你可以这样做:>cat/dev/random | yourApp。我试着用dos命令“more”代替“yourApp”,效果很好!不知道当熵为空且随机位被阻塞时,是否还会遇到其他问题。但这似乎是可行的!