2008-10-10 15 views
32

Czy istnieje odpowiednik systemu Windows dla Linuksa /dev/random?Windowsowy odpowiednik/dev/random

To pytanie wymaga możliwości odczytu liczb losowych z pliku/urządzenia (zgodnego z np. Unix/Linux), w przeciwieństwie do pytania Windows API.

+11

Chciałbym, aby ktoś faktycznie odpowiedział na zadane pytanie. Istnieje wiele odpowiedzi na ogólne pytanie * w jaki sposób mogę generować losowe liczby w systemie Windows *, ale to nie jest to pytanie. To pytanie w szczególności pyta o '/ dev/random', który jest sposobem generowania liczb losowych poprzez odczytanie z" pliku ". Jest to o wiele bardziej interesujące niż generowanie liczb losowych przez wywołanie funkcji. ** To ** jest tym, co chcę wiedzieć. Dla porównania nie jest to dokładnie to samo, ale [istnieją rozwiązania dla Windows i DOS] (https://en.wikipedia.org/wiki//dev/random#Other_operating_systems). – Synetech

+5

Pytanie dotyczy tematu, a nie pytania o "narzędzie, bibliotekę lub ulubione zasoby poza witryną". – kay

+8

To PERFEKCYJNE WAŻNE pytanie jest bardzo użyteczne, a NIE "rekomendacją narzędzia". Kolejny przykład ciemnej strony S.O. –

Odpowiedz

1

Ten link z odpowiedzią StingyJack jest dobra: http://en.wikipedia.org/wiki/CryptGenRandom

Microsoft Visual Studio C++ od 2005 oferuje rand_s() który działa w systemie Windows XP i nowsze. Opiera się na RtlGenRandom (podobnie jak funkcje PRNG CryptoAPI), których wewnętrzne działania nie są upubliczniane. Wygląda na to, że w XP były pewne słabości, które zostały naprawione.

Osobiście używam rand_s() jako dodatkowego źródła losowości do wysiewania PRNG według własnego wyboru.