Skocz do zawartości
"Idzie nowe..." - o zmianach i nie tylko ×
Przeniesienie zakupów z IPS Marketplace / Moving bought items from IPS Marketplace ×

Porównywanie haseł


Gość pziemczyk

Rekomendowane odpowiedzi

Gość pziemczyk

Przymierzam się wielkimi krokami do kupna licencji i będę chciał zintegrować serwer gry (GTA) z IPB. To znaczy konta w grze to konta z forum IPB. Gra nie jest pisana w PHP gdyż to nie jest grą na przeglądarkę. I ja mam pytanie, w jaki sposób IPB porównuje hasła czy są prawidłowe? Chcę przepisać funkcję porównywania haseł z PHP do PAWN.

Odnośnik do komentarza
Udostępnij na innych stronach

  • Manager

W sensie czy wpisane hasło jest zgodne z tym zakodowanym w bazie, np. podczas logowania? O to pytasz?

intermedia - profesjonalne rozwiązania Invision Power Board

---

Chcesz uzyskać szybko i sprawnie pomoc? Uzupełnij wersję i adres w profilu.

Odnośnik do komentarza
Udostępnij na innych stronach

  • Manager

Generalnie to sprawdza, jak zwykle się to robi.. Fragmencik:

	/**
 * Check supplied password with database
 *
 * @access	public
 * @param	string		Key: either member_id or email
 * @param	string		MD5 of entered password
 * @return	boolean		Password is correct
 */
static public function authenticateMember( $member_key, $md5_once_password )
{
	/* Load member */
	$member = self::load( $member_key );

	if ( ! $member['member_id'] )
	{
		return FALSE;
	}

	if ( $member['members_pass_hash'] == self::generateCompiledPasshash( $member['members_pass_salt'], $md5_once_password ) )
	{
		return true;
	}
	else
	{
		return false;
	}
}

intermedia - profesjonalne rozwiązania Invision Power Board

---

Chcesz uzyskać szybko i sprawnie pomoc? Uzupełnij wersję i adres w profilu.

Odnośnik do komentarza
Udostępnij na innych stronach

Gość pziemczyk

Da radę jakoś objaśnić mniejwięcej jak to wygląda w praktyce?

Bo rozumiem że to nie jest czyste MD5 tylko połączone z saltem.

Co to jest $member_key?

Odnośnik do komentarza
Udostępnij na innych stronach

  • Manager

Masz pliki IP.Board? No to trzeba zajrzeć i sprawdzić. Jeśli programujesz to nie powinieneś mieć problemu..

Zacznij od: admin/sources/handlers/han_login.php

intermedia - profesjonalne rozwiązania Invision Power Board

---

Chcesz uzyskać szybko i sprawnie pomoc? Uzupełnij wersję i adres w profilu.

Odnośnik do komentarza
Udostępnij na innych stronach

  • Manager

Automatyczna wiadomość

Ten temat został przeniesiony z forum:

"Invision Power Board -> Invision Power Board 3.x -> Modyfikacje - pomoc"

do:

"Invision Power Board -> Zaawansowane programowanie"

intermedia - profesjonalne rozwiązania Invision Power Board

---

Chcesz uzyskać szybko i sprawnie pomoc? Uzupełnij wersję i adres w profilu.

Odnośnik do komentarza
Udostępnij na innych stronach

jeżeli nie chcesz analizować w jaki sposób są kodowane hasła itd to możesz np. stworzyć plik do którego poprzez GET będzie przekazywany login i hasło a zwracał będzie 1/0 (true/false). wartość tą będziesz mógł pobrać socket'em.

a jeżeli tylko sql to trudno... czeka cię analiza kodu(danego przez DawPi'ego)

Odnośnik do komentarza
Udostępnij na innych stronach

  • 1 rok później...

Przepraszam, że tak się podepnę pod temat, ale nie orientuje się czy powinienem robić nowy.

Otóż, mam ten sam problem co kolega, jednakże mam już mikroskopijne rozwiązanie, ale nie mogę go wykorzystac. Tzn. gdy je wykorzystuje i tak nie mam żadnego rekordu pokazywanego w bazie danych:

format(query, sizeof(query), "SELECT * FROM serv_konta sk LEFT JOIN forum_members fm ON (fm.member_id=sk.pUID) WHERE sk.pNick='%s' AND fm.members_pass_hash=CONCAT(MD5(fm.members_pass_salt),'', MD5('%s'))", P[playerid][pNick], pass);

Teraz moje pytanie jest takie, jak za pomocą (nawet PHP) najprostszego algorytmu i znając salt stworzyć hash hasła wykorzystywanego w IPB?

Odnośnik do komentarza
Udostępnij na innych stronach

  • Manager

Teraz moje pytanie jest takie, jak za pomocą (nawet PHP) najprostszego algorytmu i znając salt stworzyć hash hasła wykorzystywanego w IPB?

Nie możesz tego wykonać. Hash jest generowany z hasła (w postaci jawnej). To tzw. szyfrowanie jednostronne. Nie ma opcji odwrócenia tej operacji.

intermedia - profesjonalne rozwiązania Invision Power Board

---

Chcesz uzyskać szybko i sprawnie pomoc? Uzupełnij wersję i adres w profilu.

Odnośnik do komentarza
Udostępnij na innych stronach

Dziękuje za szybką odpowiedź!

Jednakże wiem, i tak napisałem, że chcę z HASŁA I SALTU wygenerować hash i porównać go z tym z bazy danych ;)

mój powyższy kod przepisany na php:


$blebleble = sprintf("SELECT * FROM serv_konta sk LEFT JOIN forum_members fm ON (fm.member_id=sk.pUID) WHERE sk.pNick='%s' AND fm.members_pass_hash=CONCAT(MD5(fm.members_pass_salt),'', MD5('%s'))", $NickGracza, $Haslo);

mysql_query($blebleble);

Edytowane przez Cirasean
Odnośnik do komentarza
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Umieściliśmy na Twoim urządzeniu pliki cookie, aby pomóc Ci usprawnić przeglądanie strony. Możesz dostosować ustawienia plików cookie, w przeciwnym wypadku zakładamy, że wyrażasz na to zgodę.