• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Hashowanie haseł w PHP8

0 głosów
505 wizyt
pytanie zadane 25 października 2022 w PHP przez zbiku25 Gaduła (3,000 p.)

Wie ktoś może czy w PHP8 coś się zmieniło w hashowaniu? Mój kod za każdym razem daje mi inny wynik hashowania hasła o tej samej treści frown

komenda hashująca

$haslo_hash=PASSWORD_HASH($haslo1, PASSWORD_DEFAULT);

a tutaj cały kod sprawdzający wynik:

<?php 


	$haslo1=$_POST['haslo1'];
	
	$haslo_hash=PASSWORD_HASH($haslo1, PASSWORD_DEFAULT);

?>

<!DOCTYPE html>
<html lang="pl">

<head>
<meta charset="UTF-8" />
</head>

<body style="background-color:grey";>

<form method="post">


Podaj hasło:<br>
<input type="password" name="haslo1"/><br><br>

<input type="submit" value="Sprawdź hash"

</form>

<?php

echo $haslo_hash

?>

</body>
</html>

 

1 odpowiedź

+3 głosów
odpowiedź 25 października 2022 przez Comandeer Guru (607,960 p.)
wybrane 25 października 2022 przez zbiku25
 
Najlepsza

To jest jak najbardziej poprawne zachowanie. Hasło jest za każdym razem hashowane z inną, unikalną solą. A że sól za każdym razem jest inna, wynikowy hash również się różni. Dzięki temu unikać można ataków przy pomocy tzw. tęczowych tablic, które zawierają hashe dla konkretnych fraz. Unikalna sól sprawia, że każde wpisane hasło jest unikalne, ergo – nie ma go w tablicy tęczowej.

Dlatego do weryfikacji poprawności hasła jest osobna funkcja, password_verify(). Na podstawie istniejącego hasha (który zawiera też informacje o soli) jest w stanie sprawdzić, czy podane hasło po dodaniu danej soli wygeneruje dany hash. 

komentarz 25 października 2022 przez zbiku25 Gaduła (3,000 p.)
Dziękuję za wyjaśnienie. Póki co łapię 90% :) Muszę się z tym przespać.

O ile dobrze zrozumiałem zasada działania jest taka:

1. Przy rejestracji, podane hasło jest hashowane co generuje ciąg znaków i do tego ciągu znaków jest dodawana sól -> taki ciąg znaków + sól trafia do bazy danych

2. Kiedy się logujemy, wpisane do formularza hasło jest hashowane co ponownie generuje ciąg znaków (taki sam jak przy rejestracji) + program dodaje do tego ciągu znaków sól też taką samą jaką dodał do hasła przy rejestracji?? Wydaje się, że musi tak być bo inaczej te hasła nie będą się zgadzać?

Pozdrawiam,

Podobne pytania

0 głosów
1 odpowiedź 1,470 wizyt
pytanie zadane 26 maja 2016 w PHP przez DaltooN Początkujący (430 p.)
0 głosów
2 odpowiedzi 844 wizyt
pytanie zadane 12 października 2019 w PHP przez kamiz Obywatel (1,010 p.)
0 głosów
0 odpowiedzi 352 wizyt
pytanie zadane 15 stycznia 2019 w C i C++ przez jjanickij Użytkownik (510 p.)

93,741 zapytań

142,677 odpowiedzi

323,294 komentarzy

63,323 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Twierdza Linux. Bezpieczeństwo dla dociekliwych

Aby uzyskać rabat -10%, użyjcie kodu pasja-linux, wpisując go w specjalne pole w koszyku.

...