PHP'de AES Şifreleme ve Şifre Çözme

PHP AES Şifreleme ve Şifre Çözme. AES Şifrelemesi Nedir ve Nasıl Çalışır? PHP'de AES Şifreleme. PHP'de AES Şifre Çözme.


Üçüncü taraf finansal API'yi entegre etmemiz gerektiğinde, düz metin yerine şifreli biçimde veri gönderip almaya izin veriyorlar.

Genel olarak, veri güvenliği için hepsinin AES şifrelemesine ihtiyaçları vardır. Bu makalede size PHP'de AES şifreleme ve şifre çözmenin nasıl kullanılacağını göstereceğim.

Şifreleme, düz metin alıp bazı yöntemler ve algoritmalar kullanarak şifreli metne dönüştürerek çalışır.

AES Şifrelemesi Nedir ve Nasıl Çalışır?

AES, Gelişmiş Şifreleme Standardı anlamına gelir. AES şifreleme, AES-128 (128 bit), AES-192 (192 bit), AES-256 (256 bit) olmak üzere üç blok şifreye sahiptir ve bu bloklu şifreler, şifreleme ve şifre çözme işlemi için kullanılan anahtardan dolayı adlandırılmıştır.

Metnimizi AES şifrelemesi ile şifreleyebilir ve gereksinime göre bir anahtar uzunluğu seçebiliriz (128, 192 ve 256 bit). Öyleyse, PHP'de AES şifreleme ve şifre çözmenin nasıl kullanılacağını görelim.

PHP'de AES Şifreleme

<?php 
//Şifre tanımlaması
$cipher = "aes-256-cbc"; 

//256 bit şifreleme anahtarı oluştur
$encryptionKey = openssl_random_pseudo_bytes(32); 

//Bir başlatma vektörü oluştur
$ivSize = openssl_cipher_iv_length($cipher); 
$iv = openssl_random_pseudo_bytes($iv_size); 

//Şifrelenecek veriler
$data = "Sample Text"; 
$encryptedData = openssl_encrypt($data, $cipher, $encryptionKey, 0, $iv); 

echo "Encrypted Text: " . $encryptedData; 
?>

PHP'de AES Şifre Çözme

<?php 
//Şifre tanımlaması
$cipher = "aes-256-cbc"; 

//Verilerin şifresini çöz
$decryptedData = openssl_decrypt($encryptedData, $cipher, $encryptionKey, 0, $iv); 

echo "Decrypted Text: " . $decryptedData; 
?>

$iv veya $iv_size değişkenini yazdırmayı denerseniz, varsayılan olarak size bilinmeyen karakterleri gösterecektir. Yani değerini okunabilir biçimde görmek için bin2hex() işlevini kullanmanız gerekir.

Akılda tutmanız gereken bir diğer önemli nokta da, şifre çözme için her zaman aynı şifreleme anahtarı ve şifreleme için kullanılan başlatma vektörü(iv) gerekir.