hash hkdf(): Skillnad mellan sidversioner

Från Wiki.linux.se
Hoppa till navigering Hoppa till sök
(Skapade sidan med '== 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 [...')
 
 
Rad 8: Rad 8:


==== Parametrar ====
==== Parametrar ====
* '''algo:'''   
'''algo:'''   
  Namnet på den valda hash-algoritmen (t.ex. "sha256"). För en lista över stödda algoritmer, se [[hash_hmac_algos()]].
Namnet på den valda hash-algoritmen (t.ex. "sha256"). För en lista över stödda algoritmer, se [[hash_hmac_algos()]].


  '''Notering:'''   
'''Notering:'''   
  Icke-kryptografiska hash-funktioner är inte tillåtna.
Icke-kryptografiska hash-funktioner är inte tillåtna.


* '''password:'''   
'''password:'''   
   Lösenordet som ska användas för nyckelderiveringen.
   Lösenordet som ska användas för nyckelderiveringen.


* '''salt:'''   
'''salt:'''   
  Salten som ska användas för deriveringen. Detta värde bör genereras slumpmässigt.
Salten som ska användas för deriveringen. Detta värde bör genereras slumpmässigt.


* '''iterations:'''   
'''iterations:'''   
  Antalet interna iterationer som ska utföras för deriveringen.
Antalet interna iterationer som ska utföras för deriveringen.


* '''length:'''   
'''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.
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:'''
'''binary:'''
  Om satt till ''true'' returneras råa binära data. ''false'' returnerar hexadecimala tecken i små bokstäver.
Om satt till ''true'' returneras råa binära data. ''false'' returnerar hexadecimala tecken i små bokstäver.


* '''options:'''   
'''options:'''   
  En array med alternativ för olika hash-algoritmer. För närvarande stöds endast ''"seed"''-nyckeln för MurmurHash-varianterna.
En array med alternativ för olika hash-algoritmer. För närvarande stöds endast ''"seed"''-nyckeln för MurmurHash-varianterna.


==== Returvärden ====
==== Returvärden ====

Nuvarande version från 26 oktober 2024 kl. 21.17

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.