hash hkdf()
hash_pbkdf2
(PHP 5 >= 5.5.0, PHP 7, PHP 8)
hash_pbkdf2 — Genererar en PBKDF2-nyckelderivering från ett angivet lösenord
Beskrivning
`hash_pbkdf2(string $algo, #[\SensitiveParameter] string $password, string $salt, int $iterations, int $length = 0, bool $binary = false, array $options = []): string`
Parametrar
- algo:
Namnet på den valda hash-algoritmen (t.ex. "sha256"). För en lista över stödda algoritmer, se hash_hmac_algos().
Notering: Icke-kryptografiska hash-funktioner är inte tillåtna.
- password:
Lösenordet som ska användas för nyckelderiveringen.
- salt:
Salten som ska användas för deriveringen. Detta värde bör genereras slumpmässigt.
- iterations:
Antalet interna iterationer som ska utföras för deriveringen.
- length:
Längden på den returnerade strängen. Om binary är true motsvarar detta byte-längden av den deriverade nyckeln. Om binary är false motsvarar det dubbla byte-längden (eftersom varje byte av nyckeln returneras som två hexadecimala tecken). Om 0 anges, används hela utdata från den angivna algoritmen.
- binary:
Om satt till true returneras råa binära data. false returnerar hexadecimala tecken i små bokstäver.
- options:
En array med alternativ för olika hash-algoritmer. För närvarande stöds endast "seed"-nyckeln för MurmurHash-varianterna.
Returvärden
Returnerar en sträng som innehåller den deriverade nyckeln som hexadecimala tecken i små bokstäver, om inte binary är satt till true, i vilket fall den råa binära representationen av den deriverade nyckeln returneras.
Fel/Undantag
Kastar ett ValueError-undantag om algoritmen är okänd, om iterations är mindre än eller lika med 0, om length är mindre än 0 eller om salt är för lång (större än INT_MAX - 4).
Ändringslogg
Version | Beskrivning |
---|---|
8.0.0 | Kastar nu ett ValueError-undantag vid fel. Tidigare returnerades false och ett E_WARNING-meddelande emitterades. |
7.2.0 | Användning av icke-kryptografiska hash-funktioner (adler32, crc32, crc32b, fnv132, fnv1a32, fnv164, fnv1a64, joaat) inaktiverades. |
Exempel
Exempel #1 hash_pbkdf2()-exempel, grundläggande användning
<?php $password = "password"; $iterations = 600000; // Generera en kryptografiskt säker slumpmässig salt med random_bytes() $salt = random_bytes(16); $hash = hash_pbkdf2("sha256", $password, $salt, $iterations, 20); var_dump($hash); // För råa binära data behöver $length halveras för motsvarande resultat $hash = hash_pbkdf2("sha256", $password, $salt, $iterations, 10, true); var_dump(bin2hex($hash)); ?>
Ovanstående exempel kommer att ge ett resultat som liknar:
string(20) "120fb6cffcf8b32c43e7" string(20) "120fb6cffcf8b32c43e7"
Noter
- Varning:
Metoden PBKDF2 kan användas för att hasha lösenord för lagring. Det bör dock noteras att password_hash() eller crypt() med CRYPT_BLOWFISH är bättre lämpade för lösenordslagring.
Se även
- password_hash() — Skapar en lösenordshash
- hash_hkdf() — Genererar en HKDF-nyckelderivering från ett angivet nyckelinmatning
- sodium_crypto_pwhash() — Deriverar en nyckel från ett lösenord med Argon2
Sidslut
Orginalhemsidan på Engelska :https://www.php.net/manual/en/function.hash-pbkdf2.php
PHP Funktioner Funktionsreferens
Det här är en maskinöversättning av PHP-manualen till svenska. Om du hittar fel är vi tacksamma om du rapporterar dem via formuläret som finns på
https://www.linux.se/kontaka-linux-se/
Tack till Datorhjälp och Datorservice som har sponsrat Linux.se med webserver.