string password = "mypassword"; byte[] salt = new byte[16]; // generate a random salt using (var deriveBytes = new Rfc2898DeriveBytes(password, salt, 10000)) { byte[] key = deriveBytes.GetBytes(32); // generate a 256 bit key }
string password = "mypassword"; byte[] salt = new byte[16]; // generate a random salt using (var deriveBytes = new Rfc2898DeriveBytes(password, salt, 10000)) { byte[] key = deriveBytes.GetBytes(32); // generate a 256 bit key byte[] iv = deriveBytes.GetBytes(16); // generate a 128 bit IV using (var aes = Aes.Create()) { aes.Key = key; aes.IV = iv; // use AES to encrypt or decrypt data } }In this example, we use the Rfc2898DeriveBytes class to generate a 256-bit key and 128-bit initialization vector (IV) for use with AES encryption. We then create a new instance of the Aes class and use the generated key and IV to encrypt or decrypt data. Package library: System.Security.Cryptography.