(PHP 5 >= 5.5.0, PHP 7, PHP 8)
hash_pbkdf2 — Belirtilen bir parolanın PBKDF2 anahtar türevini döndürür
algo
Seçilen aşlama algoritmasının ismi ("md5", "sha256", "haval160,4" ve benzerleri). Desteklenen algoritmaların listesi hash_algos() işlevinde bulunabilir.
parola
Türetim için kullanılacak parola.
tuz
Türetim için kullanılacak tuz. Rasgele bir değer üretilmelidir.
yineleme
Türetim için dahili olarak uygulanacak yinelemelerin sayısı.
uzunluk
Çıktı dizgesinin uzunluğu. ikil
true
ise türetilen anahtarın bayt cinsinden uzunluğudur; false
ise türetilen anahtar uzunluğunun iki katı olmalıdır (her bayt için iki harf/rakam döner).
0
ise belirtilen algoritmanın tüm çıktısı kullanılır.
ikil
true
ise ham ikil veri, false
ise küçük harfli onaltılıklar çıktılanır.
ikil
true
ise türetilen anahtarın ham ikil gösterimi, false
ise küçük harfli onaltılık gösterimi döner
Algoritma bilinmiyorsa, yineleme
sıfırdan küçük veya eşitse, uzunluk
sıfırdan küçükse veya tuz
çok uzunsa (INT_MAX
- 4
'ten büyükse), bir ValueError istisnası oluşur.
Sürüm: | Açıklama |
---|---|
8.0.0 | Artık hata durumunda ValueError istisnası oluşuyor. Evvelce false döner ve bir E_WARNING iletisi çıktılanırdı. |
7.2.0 | Kriptografik olmayan aş işlevlerinin (adler32, crc32, crc32b, fnv132, fnv1a32, fnv164, fnv1a64, joaat) kullanımı iptal edildi. |
Örnek 1 - hash_pbkdf2() genel kullanım örneği
<?php
$parola = "password";
$yineleme = 600000;
// random_bytes() kullanarak kriptografik olarak güvenli rastgele tuz üret
$tuz = random_bytes(16);
$aş = hash_pbkdf2("sha256", $parola, $tuz, $yineleme, 20);
var_dump($aş);
// ham ikil durumunda, eşdeğer sonuç için $uzunluk yarıya düşer
$aş = hash_pbkdf2("sha256", $parola, $tuz, $yineleme, 10, true);
var_dump(bin2hex($aş));?>
?>
Yukarıdaki örnek şuna benzer bir çıktı üretir:
string(20) "120fb6cffcf8b32c43e7" string(20) "120fb6cffcf8b32c43e7"
PBKDF2 yöntemi depolama için parolaları aşlamada kullanılabilir. Bununla birlikte, password_hash() veya CRYPT_BLOWFISH
ile crypt() parola depolamaya daha uygundur.