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

Php jak porównać wpisane hasło z hasłem zahahsowanym np. w SHA1 ?

Object Storage Arubacloud
0 głosów
394 wizyt
pytanie zadane 25 października 2016 w PHP przez Ditrix Mądrala (5,650 p.)

Witam

Chce zrobić okno logowania. W bazie danych, w tabeli mam każde hasło zabezpieczone SHA1. Jak sprawdzić czy to hasło, które przesyła użytkownik jest takie same jak hasło w bazie danych ? 

Dla przykładu podam mój kod, który wypisuje nazwę użytkownika i to hasło z bazy danych.

<?php
	$polaczenie = mysql_connect('localhost', 'root','');
	if(!$polaczenie)
		echo "Blad połączenie z serwerem";
	else
	{
		if(!mysql_select_db("test5", $polaczenie))
			echo "Błąd połączenia z bazą danych";
		
		else
		{
			if(!mysql_query('select * from dane_logowania',$polaczenie))
				echo "Błąd połączenia z tabelą";
			else
			{
				$user = $_POST['name'];
				$pass = $_POST['pass'];
				$checked = false;
				$zapytanie = mysql_query("select * from dane_logowania");
				while($wiersz = mysql_fetch_row($zapytanie))
				{
					$temp_user = Sha1($wiersz[2]);
					echo "$wiersz[1] <br>";
					echo "$wiersz[2] <br>";
				}
				
				if($checked==true)
					echo "Użytkownik $user został pomyślnie zalogowany";
				else 
					echo "Błąd logowania";
			}
		}	
	}
	
	/*if($wiersz[1]==$user)
					{
						if($wiersz[2]==$pass)
						{
							$checked = true;
							break;
						}
					}*/
?>
1
komentarz 25 października 2016 przez Pietrak Pasjonat (18,850 p.)
Do haseł nie używamy sha1.

1 odpowiedź

0 głosów
odpowiedź 25 października 2016 przez Anszlus Bywalec (2,280 p.)
'SELECT id FROM gracze WHERE login = "'.$user.'" AND password = "'.sha1($pass).'" LIMIT 1'

Musisz zamienić hasło podane z POST'a na sha1 i sprawdzić czy taka wartość znajduje się w bazie

komentarz 25 października 2016 przez Ditrix Mądrala (5,650 p.)
$temp_user = Sha1($wiersz[2]);

Gdzie $wiersz[2] odpowiada za hasło.

W taki sposób ? Bo jak tak to nie działa. Wyświetla inną wartość.

komentarz 25 października 2016 przez Anszlus Bywalec (2,280 p.)
nie, nie tak. Zresztą cały kod masz jakoś dziwnie zapisany i już nie korzysta się z mysql_* :P
Proponuję najpierw przestudiować działanie całego kodu, a później bawienie się w kodowania.
komentarz 25 października 2016 przez Anszlus Bywalec (2,280 p.)
$pass = sha1($_POST['pass']);

raczej tak to powinno wyglądać, a to chyba powinno być bez, bo coś nie mogę rozczytać twojego czarnego kodu.

$temp_user = $wiersz[2];

 

komentarz 25 października 2016 przez Ditrix Mądrala (5,650 p.)
Nie widzę żadnych blędów. Wszystko działa jak powinno. W razie jakiegoś błędu będzie się wyświetlał dokładny komunikat.

A mysql_ czemu się nie używa ?
1
komentarz 25 października 2016 przez Anszlus Bywalec (2,280 p.)
Przepraszam, ale czy tylko ja jestem już w 2016 roku? Nie widzę sensu uczyć się na rozszerzeniach które zostały usunięte z najnowszej wersji PHP. Programowanie wymaga chyba bycia na bieżąco?

@EDIT: MySQLi lub PDO Ci coś mówi?
4
komentarz 25 października 2016 przez adrian17 Ekspert (344,860 p.)
powyższe pytanie można też zadać w przypadku sha1 (względem bezpieczniejszego password_hash())
komentarz 26 października 2016 przez Ditrix Mądrala (5,650 p.)
Php uczę się aby tylko na egzamin w szkole. Pokazano mi mysql_ to tak robię.

Podobne pytania

0 głosów
2 odpowiedzi 1,855 wizyt
pytanie zadane 2 września 2017 w PHP przez ThePatrykOOO Dyskutant (8,400 p.)
0 głosów
1 odpowiedź 284 wizyt
pytanie zadane 25 lutego 2019 w PHP przez Łeja Nowicjusz (140 p.)
0 głosów
1 odpowiedź 305 wizyt
pytanie zadane 29 kwietnia 2021 w PHP przez domkub12 Początkujący (480 p.)

92,566 zapytań

141,420 odpowiedzi

319,615 komentarzy

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

...