2008-10-10 2 views
32

Есть ли Windows-эквивалент Linux /dev/random?Windows-эквивалент/dev/random

Этот вопрос задает вопрос о возможности считывания случайных чисел из файла/устройства (совместимого, например, с Unix/Linux), в отличие от вопроса Windows API.

+11

Желаю, чтобы кто-то действительно ответил на вопрос, который был задан. Существует много ответов на общий вопрос * как я могу генерировать случайные числа в Windows *, но это не вопрос. В этом вопросе конкретно задается вопрос о `/ dev/random`, который является способом генерации случайных чисел путем чтения из« файла ». Это гораздо интереснее, чем просто генерация случайных чисел путем вызова функции. ** Это то, что я хочу знать. Для записи это не совсем то же самое, но [есть решения для Windows и DOS] (https://en.wikipedia.org/wiki//dev/random#Other_operating_systems). – Synetech 2015-09-13 00:42:20

ответ

1

Эта связь с ответом StingyJack является хорошим: http://en.wikipedia.org/wiki/CryptGenRandom

Microsoft C++ Visual Studio с 2005 года предлагает rand_s(), который работает на Windows XP и выше. Он основан на RtlGenRandom (как и функции PRNG CryptoAPI), чья внутренняя работа не обнародована. Кажется, в XP были некоторые недостатки, которые с тех пор были исправлены.

Лично я использую rand_s() как дополнительный источник случайности, чтобы выровнять PRNG по моему выбору.