Ottenere numeri casuali di ambito Byte dai file-device /dev/random e /dev/urandom

Da Gambas-it.org - Wikipedia.

/dev/random e /dev/random sono file speciali che fungono da generatori di numeri pseudo-casuali. nota 1 Permette l'accesso al rumore ambientale raccolto da driver di periferica ed altre fonti. Essi utilizzano un recipiente di entropia di 512 byte per generare dati casuali e si fermano quando tale recipiente è pieno. In particolare il kernel di Linux genera entropia dal timing della tastiera, i movimenti del mouse, e tempi IDE e rende i dati casuali di caratteri a disposizione di altri processi del sistema operativo attraverso i file speciali /dev/random e /dev/random.


Mostriamo un esempio pratico per leggere uno dei file-device, ad esempio /dev/urandom, e ottenere numeri casuali di tipo Byte (il corrispondente unsigned char del linguaggio C):

Public Sub Main()

 Dim fl As File
 Dim b As Byte
 
  fl = Open "/dev/urandom" For Read
  
  While True
    Read #fl, b
    Print b
    Sleep 0.3
  Wend
  
End



Note

[1] I file-device "/dev/urandom" o "/dev/random" forniscono numeri casuali basati su stati fisici derivanti dai driver hardware, mentre la funzione Rnd() fornisce numeri pseudo-casuali che non possono essere utilizzati in crittografia.



Riferimenti