
Web uygulamalarında hassas verilerin korunması büyük önem taşır. PHP, şifreleme ve veri koruma için güçlü araçlar sunar.
Parola Doğrulama:
Argon2, brute-force saldırılarına karşı daha dayanıklıdır.
Bu, verinin bütünlüğünü garanti eder.
1. Şifreleme ve Veri Korumanın Önemi
- ✅ Kullanıcı verilerini güvence altına alır.
- ✅ Yetkisiz erişimi önler.
- ✅ Gizliliği ve veri bütünlüğünü korur.
- ✅ KVKK ve GDPR gibi regülasyonlara uyumluluk sağlar.
2. PHP ile Hashleme Teknikleri
Hashleme, veriyi tek yönlü olarak şifreleyerek geri döndürülemez hale getirir. Parola saklama ve veri bütünlüğünü sağlamak için kullanılır.2.1. bcrypt Kullanımı
PHP
$password = 'GucluParola123';
$hashed_password = password_hash($password, PASSWORD_BCRYPT);
echo $hashed_password;
PHP
if (password_verify($password, $hashed_password)) {
echo 'Parola doğru';
} else {
echo 'Parola yanlış';
}
2.2. Argon2 Kullanımı (Önerilen)
Argon2, günümüzde en güvenli parola hashleme algoritmalarından biridir.
PHP
$hashed_password = password_hash($password, PASSWORD_ARGON2ID);
3. Simetrik Şifreleme (AES-256) Kullanımı
AES-256, simetrik anahtar kullanarak veriyi şifreleyip çözmek için kullanılan güçlü bir algoritmadır.3.1. AES-256 ile Şifreleme
PHP
$key = openssl_random_pseudo_bytes(32);
$iv = openssl_random_pseudo_bytes(openssl_cipher_iv_length('aes-256-cbc'));
$data = 'Gizli Bilgi';
$encrypted = openssl_encrypt($data, 'aes-256-cbc', $key, 0, $iv);
echo 'Şifrelenmiş Veri: ' . base64_encode($encrypted . '::' . $iv);
3.2. AES-256 ile Çözme
PHP
list($encrypted_data, $iv) = explode('::', base64_decode($encrypted), 2);
$decrypted = openssl_decrypt($encrypted_data, 'aes-256-cbc', $key, 0, $iv);
echo 'Çözülmüş Veri: ' . $decrypted;
4. Asimetrik Şifreleme (RSA) Kullanımı
RSA, özel ve açık anahtar kullanarak şifreleme ve imzalama işlemleri yapar.4.1. RSA Anahtar Üretme
SH
openssl genpkey -algorithm RSA -out private.pem -pkeyopt rsa_keygen_bits:2048
openssl rsa -pubout -in private.pem -out public.pem
4.2. RSA ile Şifreleme
PHP
$public_key = file_get_contents('public.pem');
openssl_public_encrypt('Gizli Mesaj', $encrypted, $public_key);
echo base64_encode($encrypted);
4.3. RSA ile Çözme
PHP
$private_key = file_get_contents('private.pem');
openssl_private_decrypt(base64_decode($encrypted), $decrypted, $private_key);
echo $decrypted;
5. OpenSSL ile Veri Bütünlüğü ve Dijital İmzalama
Veri bütünlüğünü sağlamak için OpenSSL ile mesaj imzalama kullanılabilir.5.1. Veri İmzalama
PHP
openssl_sign('Önemli Veri', $signature, $private_key, OPENSSL_ALGO_SHA256);
echo base64_encode($signature);
5.2. İmza Doğrulama
PHP
$valid = openssl_verify('Önemli Veri', base64_decode($signature), $public_key, OPENSSL_ALGO_SHA256);
echo $valid ? 'İmza geçerli' : 'İmza geçersiz';
6. HMAC ile Veri Bütünlüğü Sağlama
HMAC, bir mesajın değiştirilmediğini doğrulamak için kullanılır.6.1. HMAC Kullanımı
PHP
$key = 'guvenli_anahtar';
$message = 'Önemli Bilgi';
$hmac = hash_hmac('sha256', $message, $key);
echo 'HMAC: ' . $hmac;
Benzer Yazılar

PHP ile Çok Katmanlı MVC Mimari Kullanımı
0 Yorumlar

PHP ile Veritabanı Güvenliği
0 Yorumlar
Yorumlar ()
Henüz yorum yok. İlk yorum yapan sen ol!