30 Nisan 2025 - 08:01
PHP ile Güvenli Şifreleme ve Veri Koruma Teknikleri Görseli
PHP

PHP ile Güvenli Şifreleme ve Veri Koruma Teknikleri

Yorumlar
Web uygulamalarında hassas verilerin korunması büyük önem taşır. PHP, şifreleme ve veri koruma için güçlü araçlar sunar.

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;
Parola Doğrulama:
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);
Argon2, brute-force saldırılarına karşı daha dayanıklıdır.

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;
Bu, verinin bütünlüğünü garanti eder.

Benzer Yazılar

Yorumlar ()

Henüz yorum yok. İlk yorum yapan sen ol!

Yorum Yap