Generare chiavi pseudocasuali a partire da una stringa ed un salt
Scritto da
Pietro Libro il
lunedì 29 agosto 2011
•
Linguaggio:
• 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