2011-06-02 57 views
4

Python的random.SystemRandom提供了密码质量的伪随机数。它支持哪些平台?最重要的是,有没有不支持的平台,如果有,哪些平台?任何人都可以提供有关它的便携性的任何信息吗?什么平台提供SystemRandom?

回答

4

http://docs.python.org/library/random.html

随机模块还提供了SystemRandom类使用系统功能os.urandom()从由操作系统提供源产生随机数。

http://docs.python.org/library/os.html#os.urandom

该函数返回从一个特定于操作系统的随机性源随机字节。返回的数据对于加密应用程序来说应该是不可预测的,尽管它的确切质量取决于操作系统的实现。在类UNIX系统上,这将查询/dev/urandom,在Windows上它将使用CryptGenRandom。如果没有找到随机性来源,NotImplementedError将会被提出。

+2

而在VMS,它使用OpenSSL的RAND_pseudo_bytes,你可以看到通过阅读[出处](http://svn.python.org/view/python/branches/release32-maint/Modules/posixmodule.c ?视图=标记)。 – Nemo 2011-06-02 19:30:17

+0

@tylerl,是的,我已经阅读过文档,并且我已经知道它在Windows和Unix平台上支持/ dev/urandom。但是,再次,我最感兴趣的是知道哪些平台*不受支持,就像原始问题中提到的那样。 – 2011-06-03 00:31:15

+0

@Nemo,谢谢,那很有用! – 2011-06-03 00:31:38