Drukowana wersja tematu
Forum PHP.pl _ PHP _ SHA1 - dziwne działanie
Napisany przez: multiqlti 18.09.2019, 09:36:44
Podpowiedzcie mi czemu te 2 wartości nie są taki same ?!
Tworząc usera i hasło dla niego używam :
$password_trim = http://www.php.net/trim($_POST['password']);
$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 :
$password_trim = http://www.php.net/trim($_GET['column_value']);
$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
Pomińmy dyskusje o używaniu SHA1 - to jest czysty eksperyment i docelowo będzie SHA256 lub inne
Napisany przez: nospor 18.09.2019, 09: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
Napisany przez: Tomplus 18.09.2019, 10:31:50
Oba stringi są takie same mówisz o $password_trim?
Sprawdź czy mysqli_real_escape_string($conn, $password_trim) jest takie samo?
Napisany przez: multiqlti 18.09.2019, 11:28:16
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"
Napisany przez: viking 18.09.2019, 11:31:53
A czemu po prostu nie użyjesz password_hash?
Napisany przez: multiqlti 18.09.2019, 11:43:09
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
Dzięki za hinta , trim ucinał mi hasło tzn z "f#dtj!256" robił "f"
Wywaliłem TRIMa i nadal źle hashuje
Napisany przez: trueblue 18.09.2019, 11:44:56
Hash 4a0a19218e082a343a1b17e5333409af9d98f0f5 to hash dla pojedynczej litery f.
Gdzieś następuje obcięcie stringu.
Napisany przez: multiqlti 18.09.2019, 11:50:06
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
$pass = $_GET['password'];
http://www.php.net/echo "pass = ".$pass;
$column_value = SHA1($pass);
http://www.php.net/echo "Column_value: ".$column_value;
http://www.php.net/var_dump($column_value);
daje mi :
pass = f
Column_value: 4a0a19218e082a343a1b17e5333409af9d98f0f5
string(40) "4a0a19218e082a343a1b17e5333409af9d98f0f5"
Napisany przez: nospor 18.09.2019, 11: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
Napisany przez: multiqlti 18.09.2019, 11:55:42
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
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 ?
Napisany przez: nospor 18.09.2019, 11:58:28
Po pierwsze to sie nie przysla hasla URLem...
I tak, znaki specjalne sie escapuje w url. chociazby url_encode
Napisany przez: viking 18.09.2019, 11:59:52
var_dump(urlencode('f#dtj!256'));
var_dump(urldecode('f%23dtj%21256'));
Napisany przez: dublinka 18.09.2019, 14:25:01
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/characters-allowed-in-a-url/1856809
Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)