(PHP 5 >= 5.5.0, PHP 7, PHP 8)
hash_pbkdf2 — Belirtilen bir parolanın PBKDF2 anahtar türevini döndürür
$algo
, string $parola
, string $tuz
, int $yineleme
, int $uzunluk
= 0
, bool $ikil
= false
) : string
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 E_WARNING
çıktılanır.
Sürüm: | Açıklama |
---|---|
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 = 1000;
// openssl_random_pseudo_bytes(), random_bytes()
// veya uygun bir rasgelelik kaynağı ile rasgele bir tuz üret
$tuz = openssl_random_pseudo_bytes(16);
$aş = hash_pbkdf2("sha256", $parola, $tuz, $yineleme, 20);
echo $aş;
?>
Yukarıdaki örnek şuna benzer bir çıktı üretir:
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.