Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: SHA1 - dziwne działanie
Forum PHP.pl > Forum > PHP
multiqlti
Podpowiedzcie mi czemu te 2 wartości nie są taki same ?!

Tworząc usera i hasło dla niego używam :
  1. $password_trim = trim($_POST['password']);
  2. $password = SHA1(mysqli_real_escape_string($conn, $password_trim));

gdzie $_POST['password'] jest z formularza

w innym miejscu w panelu admina jest możliwość zmienić hasło dla usera :

używam :
  1. $password_trim = trim($_GET['column_value']);
  2. $column_value = SHA1(mysqli_real_escape_string($conn, $password_trim));

gdzie $_GET['column_value'] jest z formularza


oba stringi podaje tej samej "obróbce" przed dodaniem do bazy danych
hasło wklejam , nie przepisuje , więc nie ma mowy o literówce
i oba hashe sa inne sad.gif

Pomińmy dyskusje o używaniu SHA1 - to jest czysty eksperyment i docelowo będzie SHA256 lub inne
nospor
Po pierwsze wywal to
mysqli_real_escape_string
jako ze jest totalnei zbedne

Jesli potym ci nie bedzie nadal dzialac to pokaz var_dump z obu wartosci
Tomplus
Oba stringi są takie same mówisz o $password_trim?
Sprawdź czy mysqli_real_escape_string($conn, $password_trim) jest takie samo?
multiqlti
Cytat(nospor @ 18.09.2019, 10:56:04 ) *
Po pierwsze wywal to
mysqli_real_escape_string
jako ze jest totalnei zbedne

Jesli potym ci nie bedzie nadal dzialac to pokaz var_dump z obu wartosci


Wywaliłem escape'y

Nadal nie działa jak powinno , ale zauważyłem pewną prawidłowość :

jesli używam hasła typu "q"
to oba skrypty dają ten sam hash
string(40) "22ea1c649c82946aa6e479e1ffd321e4a318b1b0"
string(40) "22ea1c649c82946aa6e479e1ffd321e4a318b1b0"

ALE jeśli użyję hasła typu "f#dtj!256"
to hashe się różnią :
string(40) "4a0a19218e082a343a1b17e5333409af9d98f0f5"
string(40) "5101acc07653f52e6fab28676f16b0f3acc0f22b"
viking
A czemu po prostu nie użyjesz password_hash?
multiqlti
Cytat(viking @ 18.09.2019, 12:31:53 ) *
A czemu po prostu nie użyjesz password_hash?


Pewnego dnia użyje , na razie musze rzeźbić w g.... (sprzed ok 20 lat)
Zajęłoby mi cała stronę opisywać czemu pytam o SHA1. Taki stan zastałem i tymczasowo muszę zrobić możliwość zmiany hasła.
Cały projekt będzie zbudowany od nowa wkrótce i wykorzystamy nowsze standardy.

Cytat(Tomplus @ 18.09.2019, 11:31:50 ) *
Oba stringi są takie same mówisz o $password_trim?
Sprawdź czy mysqli_real_escape_string($conn, $password_trim) jest takie samo?



ciekawe exclamation.gif
Dzięki za hinta , trim ucinał mi hasło tzn z "f#dtj!256" robił "f"

Wywaliłem TRIMa i nadal źle hashuje sad.gif
trueblue
Hash 4a0a19218e082a343a1b17e5333409af9d98f0f5 to hash dla pojedynczej litery f.
Gdzieś następuje obcięcie stringu.
multiqlti
Cytat(trueblue @ 18.09.2019, 12:44:56 ) *
Hash 4a0a19218e082a343a1b17e5333409af9d98f0f5 to hash dla pojedynczej litery f.
Gdzieś następuje obcięcie stringu.


czy to oznacza , że np # nie można przesyłać GET/POST w URL ?
Bo ucina po "f"

zmien.php?password=f#dtj!256

  1. $pass = $_GET['password'];
  2. echo "pass = ".$pass;
  3. $column_value = SHA1($pass);
  4. echo "Column_value: ".$column_value;
  5. var_dump($column_value);


daje mi :

pass = f
Column_value: 4a0a19218e082a343a1b17e5333409af9d98f0f5
string(40) "4a0a19218e082a343a1b17e5333409af9d98f0f5"
nospor
Tak, # jest znakiem specjalnym w url.
Dlatego juz dawno prosilem o VAR_DUMP tych danych z get/post no ale po co... jak z dziecmi tongue.gif
multiqlti
Cytat(nospor @ 18.09.2019, 12:53:46 ) *
Tak, # jest znakiem specjalnym w url.
Dlatego juz dawno prosilem o VAR_DUMP tych danych z get/post no ale po co... jak z dziecmi tongue.gif


a jakie są obecne "prawidła" jeśli chodzi o używanie znaków specjalnych w url ?
Trzeba je "zakodować" i używać czy w hasłach nie powinny być używane ?
nospor
Po pierwsze to sie nie przysla hasla URLem...
I tak, znaki specjalne sie escapuje w url. chociazby url_encode
viking
var_dump(urlencode('f#dtj!256'));

var_dump(urldecode('f%23dtj%21256'));
dublinka
Cytat(multiqlti @ 18.09.2019, 11:55:42 ) *
a jakie są obecne "prawidła" jeśli chodzi o używanie znaków specjalnych w url ?


https://stackoverflow.com/questions/1856785...n-a-url/1856809
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.