No final do dia, o que o urandom
oferece pode ser específico da implementação, mas a página do manual diz que usará a entropia disponível se estiver lá, e só retornará ao PRNG quando ficar sem entropia. Então, se você tem entropia suficiente, você deve obter um resultado tão bom como se tivesse usado random
.
Mas , e isso é grande, mas: Você deve assumir que está obtendo um valor puramente gerado por pseudo sem nenhuma entropia genuína, porque o pool de entropia pode estar vazio. Portanto, você deve tratar urandom
como um PRNG, mesmo que isso possa ser melhor do que em qualquer situação. Se isso é não determinístico (dentro dos limites do seu código) e você tem que esperar que o pior caso se aplique. Afinal, se você tivesse certeza de haver entropia suficiente no pool, usaria random
, certo? Então, o ato de usar urandom
significa que você está bem com um PRNG, e isso significa um resultado potencialmente, teoricamente, quebrável.