- Katılım
- 20 Eylül 2026
- Mesajlar
- 228
- Tepkime puanı
- 18
- Puan
- 18
Kullanıcı şifrelerini veritabanında düz metin olarak saklamak güvenlik açısından doğru değildir. PHP bunun için "password_hash()" ve "password_verify()" fonksiyonlarını sunuyor.
Kayıt sırasında şifreyi hash'lemek oldukça basittir:
PHP:
<?php
$password = $_POST['password'];
$hash = password_hash(
$password,
PASSWORD_DEFAULT
);
echo $hash;
?>
Oluşturulan hash değeri veritabanında saklanabilir. Kullanıcı daha sonra giriş yaptığında ise gönderdiği şifre doğrudan hash ile karşılaştırılmaz. Bunun yerine "password_verify()" kullanılır.
PHP:
<?php
$password = $_POST['password'];
$hash = $user['password'];
if (password_verify($password, $hash)) {
echo "Şifre doğru.";
} else {
echo "Şifre hatalı.";
}
?>
Buradaki önemli noktalardan biri, aynı şifre için oluşturulan hash değerlerinin her zaman aynı olmak zorunda olmamasıdır. PHP gerekli bilgileri hash içerisinde tuttuğu için doğrulama işlemi "password_verify()" tarafından gerçekleştirilir.
Bu nedenle kullanıcı şifrelerini kendi oluşturduğumuz basit yöntemlerle şifrelemek yerine PHP'nin parola hash fonksiyonlarını kullanmak daha doğru bir yaklaşımdır.