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

Jak hashować hasła?

Object Storage Arubacloud
+5 głosów
9,976 wizyt
pytanie zadane 8 kwietnia 2015 w PHP przez Nolandosky Bywalec (2,110 p.)
Nie ogarniam hashowania haseł, mógłby ktoś mi pokazać jakiś przykładowy skrypt, albo coś żebym wiedział jak się to robi. Tylko że nie wiem czy powinno się używać Md5 bo podobno nie jest to już bezpieczne. Może by tak SHA512 lub phpass. W sumie to próbowałem użyć i tego i tego ale nie wiem jak to wykorzystać, bo z zahashowaniem i dodaniem do bazy mi się udaje, ale już w drugą stronę nie idzie! :/

4 odpowiedzi

+2 głosów
odpowiedź 8 kwietnia 2015 przez SyntaxError Pasjonat (17,170 p.)
edycja 8 kwietnia 2015 przez SyntaxError

MD5, ani żadnych innych tego typu nie zdekodujesz inaczej niż słownikowo, bo nie do tego to służy. Po prostu kiedy sprawdzasz hasło od usera to haszujesz jego wejście i porównujesz obydwa zahashowane ciągi dopiero. W PHP-ie 5.5 zaleca się używanie tej funkcji do hashowania. http://php.net/manual/en/function.password-hash.php
Przykładowo jeśli założymy, że użytkownik już się zarejestrował i jego zahashowane hasło jest już w bazie no to skrypt logowania powinien wyglądać mniej więcej tak:

$con = new mysqli("host", "user", "pass", "db");
$inLog = addslashes($_POST['login']);
$inPass = password_hash(addslashes($_POST['passwd']), 8);
$sel = $con->query("SELECT count(1) AS ile FROM users WHERE login='$inLog' AND pass='$inPass'");

Ta cyferka, którą podajesz jako drugi argument tej funkcji to jest 'poziom szyfrowania'. Im większy tym dłużej trwa hashowanie.

+2 głosów
odpowiedź 8 kwietnia 2015 przez Boshi VIP (100,240 p.)
Proponuję zaintersować się SHA1 + sól.
+1 głos
odpowiedź 8 kwietnia 2015 przez GrzesiekB Gaduła (3,720 p.)
Czyste MD5 jest słabe - to fakt, ale przydaje się do wielu innych ciekawych rzeczy.

Niemniej zashashowane hasło jakimkolwiek algorytem może być np. SHA512 i dodatkowo jeszcze md5 :) zapisujesz w bazie.

Gdy odbierasz jasło z formularza logowania to przed wysłaniem zapytania do bazy o takie jasło musisz je znowu zhashować - wtedy masz dwa ciągi zhashowane do porówniania.

 

EDIT: Tutaj link do niemal identycznej dyskusji... https://forum.pasja-informatyki.pl/1893/haslo-w-md5-a-login-php?show=1893#q1893
+1 głos
odpowiedź 9 kwietnia 2015 przez wejq Obywatel (1,020 p.)

A ja proponuje takie rozwiązanie :

http://zaufanatrzeciastrona.pl/post/jak-facebook-przechowuje-hasla-uzytkownikow/

 

$password = $mysqli->real_escape_string(trim(strip_tags($password)));
$password = md5($password);
$salt = substr(hash('sha512',rand(1,99999) . microtime()),0,64);
$password = sha1($password . $salt);
$password = hash('sha512',$password . $salt);

 

Podobne pytania

0 głosów
2 odpowiedzi 627 wizyt
pytanie zadane 13 września 2020 w Python przez Igorek Mądrala (6,290 p.)
0 głosów
2 odpowiedzi 560 wizyt
pytanie zadane 5 listopada 2015 w PHP przez Nolandosky Bywalec (2,110 p.)
+1 głos
2 odpowiedzi 512 wizyt
pytanie zadane 16 sierpnia 2020 w PHP przez mn130496 Gaduła (3,530 p.)

92,579 zapytań

141,432 odpowiedzi

319,657 komentarzy

61,963 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!

...