Generare chiavi pseudocasuali a partire da una stringa ed un salt

Scritto da  Pietro Libro il lunedì 29 agosto 2011  •  Linguaggio: C#,VB   • Livello: 200


Quanto si lavora con le classi del namespace System.Security.Cryptography può capitare di dover inizializzare un algoritmo di cifratura (ad esempio Rijndael) che necessita di un vettore di inizializzazione (IV) ed una Key per poter funzionare correttamente. Per generare queste chiavi a partire da una stringa di testo (una password ad esempio), possiamo utilizzare un'istanza della classe System.Security.Cryptography.Rfc2898DeriveBytes, la quale espone un metodo GetBytes(int) che ad ogni chiamata genera una chiave pseudocasuale di lunghezza specificata dal parametro int.

C#

////Lunghezza minima dell'Salt = 8 byte.
byte[] salt = new byte[]{ 56,23,45,89,55,23,67,89};
System.Security.Cryptography.Rfc2898DeriveBytes d = new System.Security.Cryptography.Rfc2898DeriveBytes("password",salt );
            byte[] key=  d.GetBytes(16);

 

VB.NET

Dim salt As Byte() = New Byte() {56, 23, 45, 89, 55, 23, 67, 89}
Dim d As New System.Security.Cryptography.Rfc2898DeriveBytes("password", salt)
Dim key As Byte() = d.GetBytes(16)


Il generatore di numeri pseudo-casuali + basato sull'oggetto HMACSHA1.


Tags: Cryptography

 
x