2011-06-02 56 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