22 Ocak 2018 Pazartesi

RijndaelManaged Sınıfı

Giriş
Bu sınıfı direkt yaratmak yerine Rijndael.Create() metodunu kullanmak daha iyi.

Constructor
Şöyle yaparız.
using (RijndaelManaged rijndaelCipher = new RijndaelManaged())
{
  ...
}
BlockSize Alanı
Şöyle yaparız.
rijndaelCipher.BlockSize = 128;
CreateDecryptor metodu
ICryptoTransform nesnesi döndürür. Key ve IV alanlarına değer atanmış olmalıdır. Şöyle yaparız.
ICryptoTransform transform = rijndaelCipher.CreateDecryptor();
CreateDecryptor metodu - key + iv
Şöyle yaparız.
byte[] key = ...;
byte[] iv = ...;

ICryptoTransform transform = rijndaelManaged.CreateDecryptor(key, iv);
CreateEncryptor metodu
Şöyle yaparız
void AesEncrypt(string inputFile, string outputFile, byte[] passwordBytes, byte[] salt)
{ 
   var key = new Rfc2898DeriveBytes(passwordBytes, saltBytes, 1000);
  RijndaelManaged aes = new RijndaelManaged
  {
    KeySize = 256,
    BlockSize = 128,
    Key = key.GetBytes(AES.KeySize / 8),
    IV = key.GetBytes(AES.BlockSize / 8),
    Padding = PaddingMode.Zeros,
    Mode = CipherMode.CBC
  };

  using (var output = File.Create(outputFile))
  {
    using (var crypto = new CryptoStream(output, aes.CreateEncryptor(),
      CryptoStreamMode.Write))
    {
      using (var input = File.OpenRead(inputFile))
      {
        input.CopyTo(crypto);
      }
    }
  }
}
IV Alanı
Şöyle yaparız.
byte[] keyBytes = new byte[16];
...
rijndaelCipher.IV = keyBytes;
Key Alanı
Şöyle yaparız.
byte[] keyBytes = new byte[16];
...
rijndaelCipher.Key = keyBytes;
KeySize Alanı
Şöyle yaparız.
rijndaelCipher.KeySize = 128;
Mode Alanı
Şöyle yaparız.
rijndaelCipher.Mode = CipherMode.CBC;
Padding Alanı
Şöyle yaparız.
rijndaelCipher.Padding = PaddingMode.PKCS7;

Hiç yorum yok:

Yorum Gönder