Код, который читает из / dev / random, кажется неправильным: вы в C-стиле преобразуете адрес вашего буфера символов в random_seed_a (здесь включен плагин для C ++) и игнорируете все, что вы фактически читаете из / dev / random (попробуйте*reinterpret_cast<int*>(memblock)
.
/ dev / random уже должен быть хорошим источником энтропии, поэтому, если он доступен, не стоит портить значение другими данными, а просто использовать его как начальное число напрямую. Если нетЕсли в / dev / random достаточно данных, я бы просто использовал время и использовал их сам по себе, а не хранил их чем-то.