Я пишу код в котором мне не обходимо использовать Random, и я хочу использовать Seed для рандома. В качестве него я хочу использовать температуру процессора. Искал в интернете как получить температуру процессора, нашёл что это можно сделать через ManagementObjectSearcher, но он выдает целое число, а не с плавающий точкой, что является не очень хорошо для сида. Есть ли какие-нибудь другие способы поиска температуры, желательно с большим количеством цифр после точки. Если других способов нет, то что еще можно использовать для Сида, что бы рандом был правда хорошим, а не таким какой он есть по умолчанию. Спасибо.
Этот датчик ведь не создавался для криптографии. Следовательно он будет подвержен дефектам. Например будет часто предсказуем. А если не подключен - будет постоянно выдавать 0 например. Или для 80% кейсов (температурных режимов) он будет выдавать известное распределение целых чисел. Гауссово распределение с мат-ожиданием в точке 60 градусов.
Всё это - потенциальные уязвимости для функции seed.
Что значит "рандом был хорошим"? Ты можешь сформулировать это в виде "генерю 100500 случайных чисел стандартным алгоритмом, в распределении видны такие-то и такие-то аномалии"?
Если тебе для целей криптографии, то используй WinAPI функцию CryptGenRandom() или обёртки над ней. Хотя она устарела, так что можешь посмотреть в сторону BCryptGenRandom(). Ну или как выше посоветовали, пусть пользователь мышкой пошевелит.
Для всех остальных целей тебе и дефолтный генератор сойдёт. В качестве сида возьми метку текущего времени unix, опционально смешай её с ID твоего процесса. Если тебе не требуется инициализировать десяток генераторов случайных чисел за раз, этого хватит.