PHP Parola Güvenliği ve Hashing

PHP’de bir parolayı hashlemek için genellikle password_hash() işlevini kullanmaktadır.

hashlemek: karıştırıp tekrar pişirmek.

<?php
$parola = "kullanıcı_parolası";

// Parolayı hashle
$hashlenmis_parola = password_hash($parola, PASSWORD_DEFAULT);

// Hashlenmiş parolayı görüntüle
echo "Hashlenmiş Parola: " . $hashlenmis_parola;

// Hashlenmiş Parola: 
// $2y$10$on9.yJbIVwK/FAcOIAOr3uisk5rtGS/ldFmIxa1E8FynpbkrJZDkC
?>

Bu kod parolayı hashleyecek ve PASSWORD_DEFAULT sabitini kullanarak uygun bir hash algoritması seçecektir. password_hash() işlevi, güvenli ve doğru bir şekilde parolayı hashlemek için PHP’nin önerilen yöntemidir.

Hashlenmiş parolayı saklamak veya bir veritabanında kullanmak istiyorsanız, bu hashlenmiş parolayı saklamanız gerekecektir. Daha sonra kullanıcıdan alınan bir parolayı bu hashlenmiş parolayla karşılaştırmak için password_verify() işlevini kullanabilirsiniz.

password_verify() işlevi, bir parolanın hashlenmiş bir versiyonuyla eşleşip eşleşmediğini doğrulamak için kullanılır. Bu işlev, genellikle kullanıcıların girdikleri parolaları doğrulamak için kullanılır. İşlev, verilen parolanın doğru olup olmadığını belirlemek için doğru hashlenmiş parolayı alır.

İşlevin kullanımı oldukça basittir:

<?php
// Kullanıcıdan gelen parola
$kullanici_parolasi = "kullanici_parolasi";

// Veritabanından alınan hashlenmiş parola (örneğin)
$hashlenmis_parola = "$2y$10$Mg7/OTgRDn6eKpYRcBs9BuqCja7YzBFFgEzWCVhUB1eHbkNtSVtpm";

// Parolanın doğruluğunu kontrol et
if (password_verify($kullanici_parolasi, $hashlenmis_parola)) {
    echo "Parola doğru!";
} else {
    echo "Parola yanlış!";
}
?>

Bu örnekte, password_verify() işlevi, kullanıcı tarafından sağlanan parolayı ve veritabanından alınan hashlenmiş parolayı alır. Ardından, girilen parolanın hashlenmiş versiyonu ile veritabanındaki hashlenmiş parolanın eşleşip eşleşmediğini kontrol eder. Eşleşme varsa, parolanın doğru olduğunu belirtir.

Bu işlev, saldırılara karşı güvenli bir şekilde parola doğrulama sağlar, çünkü parolanın gerçek değerini karşılaştırmak yerine hashlenmiş versiyonlarını karşılaştırır. Bu nedenle, kullanıcı parolalarını saklarken hashlenmiş parolaları kullanmak önemlidir.

PHP’de parola hashleme için password_hash() dışında da bazı yöntemler bulunmaktadır. Bunlar genellikle daha eski veya daha az güvenli olabilir, bu nedenle password_hash() ve password_verify() gibi PHP’nin sağladığı güvenli parola işlevlerini kullanmak daha iyidir. Ancak yine de bu yöntemlerden bazıları şunlardır:

  • md5() ve sha1(): PHP’nin yerleşik md5() ve sha1() işlevleri, parolaları hashlemek için kullanılabilir. Ancak, bu yöntemler artık güvenli değildir ve saldırganlar tarafından kolayca kırılabilir. Örnek:
   $hash = md5($password);
  • crypt(): PHP’nin crypt() işlevi, UNIX sistemlerinde parolaları hashlemek için kullanılabilir. Ancak, bu yöntem de bazı zayıflıklar içerebilir ve uygun şekilde kullanılmadığında güvenlik riski oluşturabilir. Örnek:
   $hash = crypt($password, $salt);
  • hash(): PHP’nin hash() işlevi, çeşitli hash algoritmaları (MD5, SHA-1, SHA-256 vb.) kullanarak veriyi hashlemek için kullanılabilir. Ancak, parolaları hashlemek için doğrudan kullanılması tavsiye edilmez. Bunun yerine, password_hash() işlevi tercih edilmelidir. Örnek:
   $hash = hash('sha256', $password);

Bu yöntemler, güvenlik açısından önerilen password_hash() ve password_verify() işlevleri kadar güvenli değildir. Parola hashleme işlemlerinde password_hash() ve password_verify() kullanılması, daha güvenli ve saldırılara karşı daha dayanıklı bir çözüm sunar.

Ads Blocker Image Powered by Code Help Pro

Reklam Engelleyici Algılandı!

Reklamları engellemek için uzantı kullandığınızı tespit ettik.

Lütfen bu reklam engelleyiciyi devre dışı bırakarak ya da sitemize izin vererek bize destek olun.

Dikkat: VPN eklentiniz üzerinde de reklam engelleyici olabilir.