hash hkdf()

Från Wiki.linux.se
Hoppa till navigering Hoppa till sök

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

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.