Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [mysql protocol] Pisanie klienta mysql od zera
Forum PHP.pl > Forum > Bazy danych > MySQL
mooska
Witam wszystkich


Próbuję napisać klienta mysql od zera (czytaj: zadnych bibliotek)
Po co i dlaczego, to mniej istotne winksmiley.jpg w kazdym bądź razie z góry mówię, że nie wchodzą w grę gotowe rozwiązania.



Od paru dni wykuwam budowe każdego pakietu, niestety juz przy handshake mam problem. Udało mi się rozkminić jak hashowane jest hasło przed przesłaniem (dwucześciowy salt ze strony serwera+hasło+sha1) i to nie jest problem. Natomiast po typowym handshake i i odpowiedzi serwera (odpowiedzi ale jeszcze nie typu OK) klient php wysyła dodatkową paczkę z nieznaną komendą (albo raczej na oko z jakimś hashem) dokladnie 8 bajtów zakonczonych nullem (ale to moze być akurat dlugosc ze wzgledu na hasło jakiego uzywam lub coś podobnego, bo nullem konczą się stringi, a wartosci sa z zakresu 0x40-0x60, czyli String jak nic winksmiley.jpg ) i za cholere nie moge znalesc tego w dokumentacji protokołu, no jakoś o tym zapomnieli, a dopiero po tym poleceniu dostaje OK.


Pytanie, co to jest i czy ma to znaczenie, bo jakoś nie moge bez tego przedostać się dalej, dostaje badhandshake, lub access denied (to nie jest problem aktualizacji wersji do 4.1, algorytm autoryzacji daje taki sam wynik jak klient php). Szukać dalej, czy po prostu posłać cokolwiek a błędu szukac gdzie indziej ?


Strawiłem juz chyba wszystko na ten temat, dokumentacje na dev.mysql, ich repozytorium gdzie tłumacza kazda funkcję c w źródłach i nic.




Jakies podpowiedzi ? Pisał juz ktoś cos takiego ? Jezyk bez znaczenia, chodzi mi o sam protokół.




pozdrawiam
mooska



OK, ułatwie troche smile.gif

Ta dodatkowa odpowiedź pojawia się czasem w pewnych okolicznościach. Jest to żądanie starej autoryzacji. Na oko opartej na OLD_PASSWORD.



Zna ktoś algorytm jakim posługuje sie ta funkcja ?



Nowa wyglada plus minus tak sha1(salt.sha1(sha1(pass))) winksmiley.jpg
SongoQ
Watpie ze tutaj znajdziesz odpowiedz. Najlepiej zagladnac w zrodelka i samemu dojsc jak to jest zrealizowane. Jesli to nie pomoze to podejrzewam ze ostatnim ratunkiem jest forum mysqla
mooska
Zrodelka przegladałem, dziesiatki razy :| pomijajac ze nie znam c, i bez tego jest to skomplikowane dosyc.
Dziekuje za rade, chyba faktycznie sprobuje na forum mysql.



pozdrawiam
mooska
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.