В конце концов, то, что urandom
дает вам, вполне может зависеть от реализации, но на странице руководства сказано, что она будет использовать имеющуюся энтропию, если она там есть, и прибегнет к PRNG только тогда, когда у нее кончится энтропия. Так что, если у вас достаточно энтропии, вы должны получить такой же хороший результат, как если бы вы использовали random
вместо этого.
Но, и это большое, но: вы должны предположить, что вы получаете чисто псевдогенерируемое значение без какой-либо подлинной энтропии вообще, потому что пул энтропии может быть пустым. Таким образом, вы должны рассматривать urandom
как PRNG, даже если это может быть лучше, чем в любой конкретной ситуации. Независимо от того, является ли это, не является детерминированным (в пределах вашего кода), и вы должны ожидать, что наихудший случай будет применим В конце концов, если бы вы были уверены, что в пуле достаточно энтропии, вы бы использовали random
, верно? Таким образом, сам акт использования urandom
означает, что вы в порядке с PRNG, а это означает потенциально теоретически взломанный результат.