Как я могу создать безопасное случайное число в роли Azure Worker?

Я знаю, использовать RNGCryptoServiceProvider, но есть ли что-то особенное, что мне нужно сделать, чтобы гарантировать, что он не использует одно и то же семя каждый раз (например, при запуске)? Нужно ли мне извлекать некоторые данные из внешних источников при инициализации? Или система делает это для меня?

1 ответ

Отличная документация Microsoft, не могла найти ничего об алгоритме или посеве.

Википедия на помощь:

У разработчиков Windows есть несколько альтернативных способов доступа к функциям CryptGenRandom; эти альтернативы ссылаются на один и тот же алгоритм и имеют одни и те же характеристики безопасности, но могут иметь и другие преимущества.

...

<a href="http://en.wikipedia.org/wiki/CryptGenRandom%23Using_RNGCryptoServiceProvider#Using_RNGCryptoServiceProvider" rel="nofollow noreferrer" target="_blank">Использование RNGCryptoServiceProvider</a>

Программисты, использующие.NET, должны использовать класс RNGCryptoServiceProvider

Обратите внимание, что Wikipedia кажется устаревшим, для получения более актуальной информации проверьте страницы Microsoft функции CryptGenRandom

Обратите внимание, что этот ответ действителен только в том случае, если вы действительно получаете Microsoft CSP, который использует функцию CryptGenRandom. Если вы находитесь на платформе, отличной от Windows, или если вы ссылаетесь на другой CSP, проверьте эти конкретные конфигурации времени выполнения.

licensed under cc by-sa 3.0 with attribution.