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

Hashowanie haseł w PHP8

Object Storage Arubacloud
0 głosów
201 wizyt
pytanie zadane 25 października 2022 w PHP przez zbiku25 Bywalec (2,940 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 (601,550 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 Bywalec (2,940 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,107 wizyt
pytanie zadane 26 maja 2016 w PHP przez DaltooN Początkujący (430 p.)
0 głosów
2 odpowiedzi 466 wizyt
pytanie zadane 12 października 2019 w PHP przez kamiz Obywatel (1,010 p.)
0 głosów
0 odpowiedzi 274 wizyt
pytanie zadane 15 stycznia 2019 w C i C++ przez jjanickij Użytkownik (510 p.)

92,576 zapytań

141,426 odpowiedzi

319,652 komentarzy

61,961 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.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...