Funkcja PHP hasło_hash

Funkcja PHP hasło_hash
Hasło użytkownika dowolnej aplikacji jest bardzo ważne, aby zapewnić bezpieczeństwo aplikacji przed różnymi atakami. W PHP istnieje wiele sposobów, aby wygenerować bezpieczne hasło, aby aplikacja była bardziej bezpieczna. Funkcja hasła_hash () to jeden ze sposobów utworzenia nowego hash hasła za pomocą algorytmu mieszania jednokierunkowego. Składnia tej funkcji podano poniżej.

Składnia:

String | Fałszowe hasło_hash (string $ hasło, ciąg | int | null $ algo [, array $ options = []])

Pierwszy argument jest obowiązkowy i służy do przyjmowania wartości ciągłej, która zostanie skąpiona.

Drugi argument jest obowiązkowy i służy do przyjmowania liczby całkowitej lub ciągu odnoszącej się do algorytmu, który zostanie użyty do utworzenia hash hasła. Ta funkcja obecnie obsługuje następujące algorytmy.

Hasło_default:

Używa algorytmu BCRYPT do generowania hash hasła.

Hasło_bcrypt:

Używa algorytmu Crypt_Blowfish do wygenerowania hash hasła.

Hasło_argon2i:

Wykorzystuje algorytm haszu Argon2i do generowania hash hasła i można go użyć, jeśli PHP został skompilowany z obsługą Argon2.

Hasło_argon2id:

Używa algorytmu haszu Argon2ID do generowania hash hasła i można go użyć, jeśli PHP został skompilowany z obsługą Argon2.

Trzeci argument jest opcjonalny i służy do zdefiniowania tablicy zawierającej obsługiwane opcje używanego algorytmu.

Poniższe opcje są obsługiwane przez algorytm hasła_bcrypt.

sól:

Ta opcja jest teraz przestarzała. Wartość soli, która jest domyślnie generowana, jest lepiej w użyciu.

koszt:

Służy do zdefiniowania kosztu algorytmu, którego należy użyć. Wartość domyślna to 10.

Poniższe opcje są obsługiwane przez algorytmy hasła_argon2i i hasło_argon2id.

pamięć_cost:

Służy do zdefiniowania maksymalnej pamięci w KB, której można użyć do generowania hash hasła za pomocą skrótu Argon2.

Time_cost:

Służy do zdefiniowania maksymalnego czasu, którego można użyć do wygenerowania hash hasła za pomocą skrótu Argon2.

wątki:

Służy do zdefiniowania liczby wątków do wygenerowania hash hasła za pomocą skrótu Argon2.

Funkcja zwraca hasło do sukcesu lub fałszu w sprawie porażki.

Przykłady funkcji hasła_hash ()

Zastosowania funkcji hasła_hash (.

Przykład-1: Utwórz hasło do skróconego za pomocą domyślnego algorytmu skrótu

Utwórz plik PHP z następującym skryptem, który wygeneruje wartość hashowanego hasła za pomocą funkcji Password_Hash (), a domyślny algorytm mieszania został użyty tutaj. Oryginalne i hashed hasło, zostaną wydrukowane jako wyjście skryptu.

// Ustaw wartość hasła
$ hasło = „SecretPassword”;
// wygeneruj hasło do skaszanego na podstawie domyślnego algorytmu
$ HASHED_PASSWORD = hasło_hash ($ hasło, hasło_default);
// Wydrukuj hasło oryginalne i haszowane
echo „Oryginalne hasło: $ hasło";
Echo "
Hashed Hasło za pomocą domyślnego algorytmu: $ HASHED_PASSWORD";
?>

Wyjście:

Następujące dane wyjściowe pojawią się po wykonaniu powyższego skryptu.

Przykład-2: Utwórz hasło Hashed przy użyciu wartości kosztu i algorytmu hasła_bcrypt

Utwórz plik PHP z następującym skryptem, który wygeneruje wartość hashed hasła za pomocą funkcji hasła_hash (). Algorytm hasła_bcrypt i wartość kosztów została użyta w funkcji hasła_hash (. Zarówno oryginalny, jak i hashed hasło zostanie wydrukowane jako wyjście skryptu.

// Ustaw wartość hasła
$ hasło = „SecretPassword”;
// Ustaw wartość kosztu dla algorytmu hasła_bcrypt
$ option = ["cost" => 5];
// wygeneruj hasło do skaszanego na podstawie domyślnego algorytmu
$ HASHED_PASSWORD = hasło_hash ($ hasło, hasło_bcrypt, $ opcja);
// Wydrukuj hasło oryginalne i haszowane
echo „Oryginalne hasło: $ hasło";
Echo "
Hashed Hasło za pomocą hasła_bcrypt: $ HASHED_PASSWORD";
?>

Wyjście:

Następujące dane wyjściowe pojawią się po wykonaniu powyższego skryptu.

Przykład-3: Utwórz hasło do hashowanego za pomocą algorytmu hasła_argon2i

Utwórz plik PHP z następującym skryptem, który wygeneruje wartość hashed hasła za pomocą funkcji hasła_hash (). Algorytm hasła_argon2i został użyty w funkcji hasła_hash (. Oryginalne i hashed hasło, zostaną wydrukowane jako wyjście skryptu.

// Ustaw wartość hasła
$ hasło = „SecretPassword”;
// wygeneruj hasło do skaszanego na podstawie domyślnego algorytmu
$ HASHED_PASSWORD = hasło_hash ($ hasło, hasło_argon2i);
// Wydrukuj hasło oryginalne i haszowane
echo „Oryginalne hasło: $ hasło";
Echo "
Hashed Hasło za pomocą hasła_argon2i: $ HASHED_PASSWORD";
?>

Wyjście:

Następujące dane wyjściowe pojawią się po wykonaniu powyższego skryptu.

Przykład-4: Korzystanie z funkcji hasła_hash () z funkcją hasła_verify ()

Utwórz plik PHP z następującym skryptem, aby zweryfikować hasło hashed za pomocą funkcji hasła_verify () po wygenerowaniu hasła skrótowego z danych stringowych za pomocą funkcji hasła_hash (). Hasło zostanie pobrane z parametru URL i sprawdzone, czy hasło jest prawidłowe za pomocą wartości hasła i wartości hasła w argumentach funkcji hasła_verify (). Jeśli ta funkcja zwróci true, hasło jest prawidłowe; W przeciwnym razie hasło jest nieprawidłowe.

// Ustaw wartość hasła
$ hasło = „SecretPassword”;
// wygeneruj hasło do haszanego na podstawie algorytmu domyślnego
$ HASHED_PASSWORD = hasło_hash ($ hasło, hasło_default);
if (isset ($ _ get ['hasło']))

// Przypisz hasło podane z adresu URL
$ v_password = $ _get ['hasło'];
// Sprawdź ważność hasła za pomocą funkcji hasła_verify ()
if (hasło_verify ($ v_password, $ hashed_password))
Hasło echo jest prawidłowe.';;
w przeciwnym razie
Hasło echo jest nieprawidłowe.';;

w przeciwnym razie
Echo „Nie jest podane hasło.";
?>

Wyjście:

Po wykonaniu powyższego skryptu bez parametru URL pojawi się następujące dane wyjściowe.

http: // localhost/php/pass4.php

Następujące dane wyjściowe pojawią się po wykonaniu powyższego skryptu z wartością parametru URL ”, 'SecretPassword ', a hasło Hashed zostało wygenerowane dla tej wartości w skrypcie. Tak więc hasło jest prawidłowe.

http: // localhost/php/pass4.php?hasło = SecretPassword

Następujące dane wyjściowe pojawią się po wykonaniu powyższego skryptu z wartością parametru URL ”, 'sekret' nieważny.

http: // localhost/php/pass4.php?hasło = sekret

Wniosek

W przykładach tego samouczka pokazano różne sposoby tworzenia hasła za pomocą funkcji hasła_hash ().