CodeBlanks Logo Icon CodeBlanks

password_hash() ile hashleme

PHP kursu · İleri seviye · Ders 60/92

password_hash() ve PASSWORD_DEFAULT ile güvenli parola hashlemeyi öğrenirsin.

password_hash ne işe yarar?

Parolaları düz metin olarak saklamak büyük risktir; veritabanı sızarsa tüm hesaplar açıkta kalır. password_hash() fonksiyonu parolayı tek yönlü bir dizeye (hash) çevirir; orijinal parola geri alınamaz.

İkinci argüman olarak PASSWORD_DEFAULT verirsin. PHP bunu güncel önerilen algoritmaya eşler; günümüzde bu bcrypt'tir. argon2 de alternatif olarak seçilebilir. Tuz (salt) otomatik eklenir; senin üretmen gerekmez.

Neden md5 veya sha1 kullanılmaz?

Eski kodlarda md5() veya sha1() görebilirsin. Bunlar hızlı oldukları için kaba kuvvet saldırılarına karşı zayıftır; ayrıca tuz eklenmediği için gökkuşağı tablolarıyla kırılabilirler. Parola saklamak için kullanma.

password_hash() bunun yerine maliyet tabanlı (cost-based) algoritmalar kullanır. Her çağrıda yeni bir tuz üretilir ve hash'in içine gömülür; bu yüzden aynı parola iki kez hash'lense bile sonuçlar farklı olur.

Uygulama password_hash ile hash üret

$password değişkenini password_hash ile hash'le. İkinci argüman olarak PASSWORD_DEFAULT kullan. Oluşan hash'in uzunluğunu strlen ile yazdır.

Örnek çözümü göster
$hash = password_hash($password, PASSWORD_DEFAULT); yaz. Sonra echo strlen($hash) . "\n"; ile uzunluğu yazdır.
Örnek çözüm:
<?php
$password = "gizli123";
$hash = password_hash($password, PASSWORD_DEFAULT);
echo strlen($hash) . "\n";

Kendini test et

  1. PASSWORD_DEFAULT ne yapar?

    • Parolayı iki yönlü şifreler
    • Güncel önerilen algoritmayı seçer
    • Hash'i kısaltır
    • Hash'i veritabanına kaydeder
    Cevabı göster

    Güncel önerilen algoritmayı seçer — Doğru. PASSWORD_DEFAULT güncel önerilen algoritmaya (bcrypt) eşlenir.

  2. password_hash çağrısını tamamla

    $hash = ____($password, PASSWORD_DEFAULT);
    Cevabı göster
    $hash = password_hash($password, PASSWORD_DEFAULT);
  3. password_hash kavramlarını eşleştir

    password_hash
    Parolayı hash'ler
    PASSWORD_DEFAULT
    Önerilen algoritma
    salt
    Rastgele tuz
    bcrypt
    Maliyet tabanlı algoritma

İleri seviye bölümündeki tüm dersler