2012-06-06 14 views
7

मैं अभी लिनक्स से विंडोज़ तक पोर्ट पायथन कोड की कोशिश कर रहा हूं। विभिन्न स्थानों में यादृच्छिक संख्या/dev/random से पढ़कर जनरेट की जाती है। विंडोज़ पर अनुकरण/dev/यादृच्छिक करने का कोई तरीका है?विंडोज़ पर सिमुलेटिंग/dev/यादृच्छिक

मैं एक समाधान है कि कोड लिनक्स पर useable रखेंगे तलाश कर रहा हूँ ...

+2

इससे मदद मिल सकती है: http://stackoverflow.com/questions/191335/windows-equivalent-of-dev-random – pcalcao

+0

त्वरित प्रतिक्रिया के लिए धन्यवाद! मैंने पाया कि पहले से ही एक है लेकिन मैं एक समाधान ढूंढना चाहता हूं जो कोड को लिनक्स पर प्रयोग योग्य रखेगा। – scherlock

उत्तर

13

यदि आप पाइथन का उपयोग कर रहे हैं, तो आप विशिष्ट कार्यान्वयन की परवाह क्यों करते हैं? बस the random module का उपयोग करें और इसे इसके साथ सौदा करने दें।

इसके अलावा

, (यदि आप सॉफ्टवेयर राज्य पर भरोसा नहीं कर सकते हैं) os.urandom ओएस आधारित यादृच्छिक मान प्रदान करता है:

एक UNIX- जैसे प्रणाली पर इस क्वेरी करेगा/dev/urandom, और Windows उस पर CryptGenRandom का उपयोग करेगा।

(ध्यान दें कि random.SystemRandom इसके लिए एक अच्छा इंटरफ़ेस प्रदान करता है)।

यदि आप वास्तव में क्रिप्टोग्राफिक रूप से यादृच्छिक होने के बारे में गंभीर हैं, तो आप PyCrypto को देखना चाहेंगे।

1

आप पायथन के मानक पुस्तकालय से random इस्तेमाल कर सकते हैं।

+2

-1। लिंक किए गए पृष्ठ से: "* मेर्सन ट्विस्टर अस्तित्व में सबसे व्यापक रूप से परीक्षण किए गए यादृच्छिक संख्या जेनरेटर में से एक है। हालांकि, पूरी तरह से निर्धारिती होने के नाते, यह सभी उद्देश्यों के लिए उपयुक्त नहीं है, और क्रिप्टोग्राफिक उद्देश्यों के लिए पूरी तरह से अनुपयुक्त है। *" तो यह है/dev/random के लिए एक विकल्प नहीं है (जो क्रिप्टोग्राफिक रूप से यादृच्छिक है।) – finnw

+1

ओपी ने क्रिप्टोग्राफिक उद्देश्यों और यादृच्छिक के बारे में कुछ भी नहीं कहा। सिस्टममैंडम (जो यादृच्छिक है। *) os.urandom का उपयोग करता है जो क्रिप्टो के लिए उपयुक्त है। – Steve

7

आप इसके बजाय random.SystemRandom पर कॉल कर सकते हैं। यह विंडोज पर CryptGenRandom और लिनक्स पर/dev/urandom का उपयोग करेगा।

अन्यथा, हमेशा सिगविन/देव/यादृच्छिक है?

संबंधित मुद्दे