array ( 0 => 'index.php', 1 => 'PHP Manual', ), 'head' => array ( 0 => 'UTF-8', 1 => 'tr', ), 'this' => array ( 0 => 'function.hash-pbkdf2.php', 1 => 'hash_pbkdf2', ), 'up' => array ( 0 => 'ref.hash.php', 1 => 'Hash İşlevleri', ), 'prev' => array ( 0 => 'function.hash-init.php', 1 => 'hash_init', ), 'next' => array ( 0 => 'function.hash-update-file.php', 1 => 'hash_update_file', ), 'alternatives' => array ( ), 'source' => array ( 'lang' => 'tr', 'path' => 'reference/hash/functions/hash-pbkdf2.xml', ), ); $setup["toc"] = $TOC; $setup["toc_deprecated"] = $TOC_DEPRECATED; $setup["parents"] = $PARENTS; manual_setup($setup); ?>
(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.