AES (Advanced Encryption Standard), verilerin gizliliğini sağlamak için kullanılan bir simetrik anahtar şifreleme algoritmasıdır. AES anahtarları 128, 192 ve 256 bit uzunluklara sahiptir.
AES’in Avantajları
- Yüksek Güvenlik: AES, birçok güvenlik testi ve analizden geçmiştir ve şu anda saldırılara karşı dayanıklıdır.
- Hız: Hem yazılım hem de donanım uygulamalarında çok hızlıdır.
- Esneklik: Farklı anahtar uzunlukları sunarak çeşitli güvenlik gereksinimlerini karşılar.
- Standart: Dünya genelinde birçok güvenlik protokolü ve sistemde standart olarak kullanılır (ör. HTTPS, VPN, Wi-Fi Güvenliği).
Java kodunda AES ile ilgili kısa bir şifreleme örneğini aşağıda görebilirsiniz.
import javax.crypto.Cipher;
import javax.crypto.KeyGenerator;
import javax.crypto.SecretKey;
import java.util.Base64;
public class AESOperation {
// AES şifreleme metodu
public static String encrypt(String plainText, SecretKey secretKey) throws Exception {
Cipher cipher = Cipher.getInstance("AES");
cipher.init(Cipher.ENCRYPT_MODE, secretKey);
byte[] encryptedBytes = cipher.doFinal(plainText.getBytes());
return Base64.getEncoder().encodeToString(encryptedBytes); // Base64 ile okunabilir formata çevir
}
// AES şifre çözme metodu
public static String decrypt(String encryptedText, SecretKey secretKey) throws Exception {
Cipher cipher = Cipher.getInstance("AES");
cipher.init(Cipher.DECRYPT_MODE, secretKey);
byte[] decryptedBytes = cipher.doFinal(Base64.getDecoder().decode(encryptedText));
return new String(decryptedBytes);
}
public static void main(String[] args) {
try {
// 1. AES anahtarı oluştur
KeyGenerator keyGenerator = KeyGenerator.getInstance("AES");
keyGenerator.init(128); // 128 bitlik anahtar oluştur
SecretKey secretKey = keyGenerator.generateKey();
// 2. Şifrelenecek metin
String originalText = "Hello World!";
System.out.println("Original Text: " + originalText);
// 3. Şifreleme
String encryptedText = encrypt(originalText, secretKey);
System.out.println("Encrypted Text: " + encryptedText);
// 4. Şifre Çözme
String decryptedText = decrypt(encryptedText, secretKey);
System.out.println("Decrypted Text: " + decryptedText);
} catch (Exception e) {
e.printStackTrace();
}
}
}
Yorum Bırak