class AES
{
public static byte[] rndKeyIv()
{
RNGCryptoServiceProvider rnd = new RNGCryptoServiceProvider();
var key = new byte[32];
var iv = new byte[16];
rnd.GetBytes(key);
rnd.GetBytes(iv);
return key;
return iv;
}
public static string Encrypt256(string decrypt)
{
//der Text aus der Box wird in Bytes umgewandelt
byte[] encbytes = ASCIIEncoding.ASCII.GetBytes(decrypt);
//die Blocksize von AES beträgt 128bits und die Keysize beträgt 256bits
AesCryptoServiceProvider aes = new AesCryptoServiceProvider();
aes.BlockSize = 128;
aes.KeySize = 256;
//der Schlüssel von oben wird wieder mit ASCII Encoding in Bytes umgewandelt, das
selbe wird mit dem Initialisierungs Vektor gemacht
aes.Key = aeskey;
aes.IV = iv;
aes.Padding = PaddingMode.PKCS7;
aes.Mode = CipherMode.CBC;
ICryptoTransform icrypt = aes.CreateEncryptor(aes.Key, aes.IV);
byte[] enc = icrypt.TransformFinalBlock(encbytes, 0, encbytes.Length);
icrypt.Dispose();
//das resultat der verschlüsselung wird in Base64String umgewandelt
return Convert.ToBase64String(enc);
}
How exactly can I use the rndKeyIv method to use those keys inside the encrypt and decrypt method? Im kind of confused.
If I would use that method in the encryption and decryption method there would be 2 different keys and ivs