Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> SHA1 - dziwne działanie
multiqlti
post 18.09.2019, 09:36:44
Post #1





Grupa: Zarejestrowani
Postów: 30
Pomógł: 1
Dołączył: 1.07.2019

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post
nospor
post 18.09.2019, 09:56:04
Post #2





Grupa: Moderatorzy
Postów: 36 440
Pomógł: 6290
Dołączył: 27.12.2004




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


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Tomplus
post 18.09.2019, 10:31:50
Post #3





Grupa: Zarejestrowani
Postów: 1 828
Pomógł: 225
Dołączył: 20.03.2005
Skąd: Będzin

Ostrzeżenie: (0%)
-----


Oba stringi są takie same mówisz o $password_trim?
Sprawdź czy mysqli_real_escape_string($conn, $password_trim) jest takie samo?
Go to the top of the page
+Quote Post
multiqlti
post 18.09.2019, 11:28:16
Post #4





Grupa: Zarejestrowani
Postów: 30
Pomógł: 1
Dołączył: 1.07.2019

Ostrzeżenie: (0%)
-----


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"
Go to the top of the page
+Quote Post
viking
post 18.09.2019, 11:31:53
Post #5





Grupa: Zarejestrowani
Postów: 6 365
Pomógł: 1114
Dołączył: 30.08.2006

Ostrzeżenie: (0%)
-----


A czemu po prostu nie użyjesz password_hash?


--------------------
Go to the top of the page
+Quote Post
multiqlti
post 18.09.2019, 11:43:09
Post #6





Grupa: Zarejestrowani
Postów: 30
Pomógł: 1
Dołączył: 1.07.2019

Ostrzeżenie: (0%)
-----


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

Ten post edytował multiqlti 18.09.2019, 11:43:36
Go to the top of the page
+Quote Post
trueblue
post 18.09.2019, 11:44:56
Post #7





Grupa: Zarejestrowani
Postów: 6 761
Pomógł: 1822
Dołączył: 11.03.2014

Ostrzeżenie: (0%)
-----


Hash 4a0a19218e082a343a1b17e5333409af9d98f0f5 to hash dla pojedynczej litery f.
Gdzieś następuje obcięcie stringu.


--------------------
Go to the top of the page
+Quote Post
multiqlti
post 18.09.2019, 11:50:06
Post #8





Grupa: Zarejestrowani
Postów: 30
Pomógł: 1
Dołączył: 1.07.2019

Ostrzeżenie: (0%)
-----


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"

Ten post edytował multiqlti 18.09.2019, 11:50:36
Go to the top of the page
+Quote Post
nospor
post 18.09.2019, 11:53:46
Post #9





Grupa: Moderatorzy
Postów: 36 440
Pomógł: 6290
Dołączył: 27.12.2004




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


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
multiqlti
post 18.09.2019, 11:55:42
Post #10





Grupa: Zarejestrowani
Postów: 30
Pomógł: 1
Dołączył: 1.07.2019

Ostrzeżenie: (0%)
-----


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 ?
Go to the top of the page
+Quote Post
nospor
post 18.09.2019, 11:58:28
Post #11





Grupa: Moderatorzy
Postów: 36 440
Pomógł: 6290
Dołączył: 27.12.2004




Po pierwsze to sie nie przysla hasla URLem...
I tak, znaki specjalne sie escapuje w url. chociazby url_encode


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
viking
post 18.09.2019, 11:59:52
Post #12





Grupa: Zarejestrowani
Postów: 6 365
Pomógł: 1114
Dołączył: 30.08.2006

Ostrzeżenie: (0%)
-----


var_dump(urlencode('f#dtj!256'));

var_dump(urldecode('f%23dtj%21256'));


--------------------
Go to the top of the page
+Quote Post
dublinka
post 18.09.2019, 14:25:01
Post #13





Grupa: Zarejestrowani
Postów: 594
Pomógł: 66
Dołączył: 22.02.2008
Skąd: Dublin

Ostrzeżenie: (0%)
-----


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


--------------------
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 29.03.2024 - 12:58