- Katılım
- 9 Haziran 2025
- Mesajlar
- 66
- Çözümler
- 1
- Tepkime puanı
- 0
- Puan
- 6
- Konum
- Türkiye
- Web sitesi
- akisforum.com
C# AES Şifreleme ile Verileri Güvenli Şekilde Şifrele & Çöz
AES Nedir ve Neden Kullanılır?
AES (Advanced Encryption Standard), simetrik yani çift yönlü bir şifreleme algoritmasıdır.
Veri hem şifrelenebilir hem de aynı anahtarla geri çözülebilir.
Özellikle:
- Dosya şifreleme
- Gizli mesajlar
- Konfigürasyon bilgileri saklama
gibi durumlar için idealdir.
AES Nasıl Çalışır?
AES şifrelemede 3 şey gerekir:
1. Key (anahtar) – 16/24/32 karakter olmalı
2. IV (Initialization Vector) – 16 baytlık rastgele veri
3. Veri – Şifrelenecek içerik
AES Şifreleme ve Deşifre Fonksiyonları
Kullanım Örneği:
Dikkat Etmen Gerekenler
- IV (Initialization Vector) sabit tutulursa tekrar şifrelemeler tahmin edilebilir hale gelir. Gerçek sistemlerde rastgele IV kullanılır ve veriye gömülür.
- Anahtarın güvenli saklanması gerekir. Aksi halde şifreleme bir anlam taşımaz.
Sonuç:
AES ile veri şifreleme C# içinde oldukça güçlü ve pratik.
Tek yönlü hash yeterli olmadığında, özellikle konfigürasyon veya hassas bilgiler saklanacaksa bu yapı mükemmel çözüm sunar.
Daha Fazla Oku:

AES (Advanced Encryption Standard), simetrik yani çift yönlü bir şifreleme algoritmasıdır.
Veri hem şifrelenebilir hem de aynı anahtarla geri çözülebilir.
Özellikle:
- Dosya şifreleme
- Gizli mesajlar
- Konfigürasyon bilgileri saklama
gibi durumlar için idealdir.

AES şifrelemede 3 şey gerekir:
1. Key (anahtar) – 16/24/32 karakter olmalı
2. IV (Initialization Vector) – 16 baytlık rastgele veri
3. Veri – Şifrelenecek içerik

C#:
using System;
using System.IO;
using System.Security.Cryptography;
using System.Text;
public class AESCrypto
{
public static string Sifrele(string plainText, string key)
{
byte[] anahtar = Encoding.UTF8.GetBytes(key.PadRight(32).Substring(0, 32));
byte[] iv = new byte[16]; // Sabit IV kullanılabilir ama önerilmez
using (Aes aes = Aes.Create())
{
aes.Key = anahtar;
aes.IV = iv;
ICryptoTransform encryptor = aes.CreateEncryptor();
byte[] inputBytes = Encoding.UTF8.GetBytes(plainText);
byte[] encrypted = encryptor.TransformFinalBlock(inputBytes, 0, inputBytes.Length);
return Convert.ToBase64String(encrypted);
}
}
public static string Coz(string encryptedText, string key)
{
byte[] anahtar = Encoding.UTF8.GetBytes(key.PadRight(32).Substring(0, 32));
byte[] iv = new byte[16];
byte[] encryptedBytes = Convert.FromBase64String(encryptedText);
using (Aes aes = Aes.Create())
{
aes.Key = anahtar;
aes.IV = iv;
ICryptoTransform decryptor = aes.CreateDecryptor();
byte[] decrypted = decryptor.TransformFinalBlock(encryptedBytes, 0, encryptedBytes.Length);
return Encoding.UTF8.GetString(decrypted);
}
}
}

C#:
string orijinal = "Bu gizli bir mesajdır.";
string anahtar = "kerimguvenli32bitkey";
string sifreli = AESCrypto.Sifrele(orijinal, anahtar);
string cozulmus = AESCrypto.Coz(sifreli, anahtar);
Console.WriteLine("Şifreli: " + sifreli);
Console.WriteLine("Çözülmüş: " + cozulmus);

- IV (Initialization Vector) sabit tutulursa tekrar şifrelemeler tahmin edilebilir hale gelir. Gerçek sistemlerde rastgele IV kullanılır ve veriye gömülür.
- Anahtarın güvenli saklanması gerekir. Aksi halde şifreleme bir anlam taşımaz.

AES ile veri şifreleme C# içinde oldukça güçlü ve pratik.
Tek yönlü hash yeterli olmadığında, özellikle konfigürasyon veya hassas bilgiler saklanacaksa bu yapı mükemmel çözüm sunar.

-
Bu bağlantı ziyaretçiler için gizlenmiştir. Görmek için lütfen giriş yapın veya üye olun.
-
Bu bağlantı ziyaretçiler için gizlenmiştir. Görmek için lütfen giriş yapın veya üye olun.
-
Bu bağlantı ziyaretçiler için gizlenmiştir. Görmek için lütfen giriş yapın veya üye olun.