password_hash() ile hashleme
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
-
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.
-
password_hash çağrısını tamamla
$hash = ____($password, PASSWORD_DEFAULT);Cevabı göster
$hash = password_hash($password, PASSWORD_DEFAULT); -
password_hash kavramlarını eşleştir
- password_hash
- Parolayı hash'ler
- PASSWORD_DEFAULT
- Önerilen algoritma
- salt
- Rastgele tuz
- bcrypt
- Maliyet tabanlı algoritma