Register for your free account! | Forgot your password?

Go Back   elitepvpers > Popular Games > Metin2 > Metin2 Private Server > Metin2 PServer Guides & Strategies
You last visited: Today at 06:25

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



[Release] Regi Check API (Sind die Daten in Releasten Datenbanken?)

Discussion on [Release] Regi Check API (Sind die Daten in Releasten Datenbanken?) within the Metin2 PServer Guides & Strategies forum part of the Metin2 Private Server category.

Reply
 
Old   #1

 
elite*gold: 83
Join Date: Nov 2013
Posts: 2,891
Received Thanks: 2,764
[Release] Regi Check API (Sind die Daten in Releasten Datenbanken?)

Ich Release heute eine kleine API zum Prüfen ob Accountdaten in Releasten Accounttabellen sind. Natürlich kann ich hier nur die Überprüfen, die ich selbst habe, eine 100% Garantie ist dies also nicht.

API URL:
Code:
http://api.1093dev.com/pwcheck.php
Parameter:
id:
Die ID, die vom Spieler gewählt wurde
pw:
Das Passwort, das vom Spieler gewählt wurde
Beide als SHA256(MySQL 5 Hash)! Es kommen also keinerlei Klartextdaten bei mir an. (Erklärung unten)
Mindestens einer der beiden Parameter muss übergeben werden.
Rückgabe:
  • Die Rückgabe ist ein JSON-String, der immer die Keys "id_released", "pw_released" und "combination_released" enthält
  • Der Standardwert ist jeweils 0 (false)
  • "id_released" ist 1, wenn die übergebene ID gefunden wurde
  • "pw_released" ist 1, wenn das übergebene Passwort gefunden wurde
  • "combination_released" ist 1, wenn die übergebene ID in Kombination mit dem übergebenen Passwort gefunden wurde
  • Wenn ein Fehler, welcher Form auch immer, beim Ausführen auftritt, sind die Werte IMMER 0 und es ist ein weiterer Key ("error") mit der Fehlermeldung zu sehen.
Beispiel Abfrage:
Code:
<?php 
$id = "0001acd8cb4fcbb81afb27c14b4ed5b84c441dff130ce714c96dc1b36eddba4f";
$pw = "67c60fb76781eb2316a28dce9c7dea517ac00ff022c09d8752366aefe1f39675";
 
$api_result = json_decode(file_get_contents(sPrintf("http://api.1093dev.com/pwcheck.php?id=%s&pw=%s", $id, $pw)), true);
 
if (isSet($api_result["error"])
{
	//ein fehler ist aufgetreten
	exit();
}
 
if ($api_result["id_released"])
{
	//achtung: die gewählt id befindet sich in einer releasten datenbank
}
 
if ($api_result["pw_released"])
{
	//achtung: das gewählte passwort befindet sich in einer releasten datenbank
}
 
if ($api_result["combination_released"])
{
	//achtung: die kombination aus id und passwort befindet sich in einer releasten datenbank
}
?>

EDIT:
Aktuell habe ich etwas mehr als 310.000 Datensätze, wovon ID und Passwort als Kombination Unique sind.



Übermittlung der Daten - Erklärung:
Die ID sowie das PW müssen als SHA256(Mysql5) Hash übergeben werden.
Hier Codebeispiele für php sowie MySQL:

php:
Code:
$unhashed = "Hallo ich bin ein mega sicheres Passwort!";
$hashed = HASH("sha256", sPrintf("*%s", strToUpper(SHA1(HEX2BIN(SHA1($toHash))))));
MySQL:
Code:
SET @unhashed = 'Hallo ich bin ein mega sicheres Passwort!';
SET @hashed = SHA2(PASSWORD(@unhashed), 256);

SELECT @unhashed, @hashed;


Einsehen meines Datenbestandes:
Code:
http://api.1093dev.com/?viewdata=pwcheck.php
rollback is offline  
Thanks
20 Users
Old 01/06/2016, 23:27   #2
 
Sphinx²'s Avatar
 
elite*gold: 1918
Join Date: Feb 2008
Posts: 1,368
Received Thanks: 1,287
Hay,

das selbe hatte ich auch vor aber nicht mit ner public API.
Wird bestimmt einigen helfen.

Gruss
Sphinx
Sphinx² is offline  
Thanks
2 Users
Old 01/07/2016, 01:22   #3

 
elite*gold: 192
Join Date: Aug 2009
Posts: 5,797
Received Thanks: 3,141
ich finde es immer noch sau gut von dir. Damit kann man was feines anstellen. Grade für Server gut , die keinen extra Pin einbauen wollen.
[-Lee-] is offline  
Thanks
2 Users
Old 01/07/2016, 07:50   #4
 
elite*gold: 2
Join Date: Jun 2013
Posts: 1,063
Received Thanks: 1,725
Coole Idee!
Wenn du Lust hast koenntest du eine Moeglichkeit zur Verfuegung stellen, dass andere dir ihre Account Tabellen auf einem Einfachen Weg zukommen lassen koennen.

So wuerde die Datenbank wachsen und die Sicherheit fuer die User steigen.
ProfessorEnte is offline  
Thanks
3 Users
Old 01/07/2016, 08:10   #5

 
elite*gold: 83
Join Date: Nov 2013
Posts: 2,891
Received Thanks: 2,764
Quote:
Originally Posted by ProfessorEnte View Post
Coole Idee!
Wenn du Lust hast koenntest du eine Moeglichkeit zur Verfuegung stellen, dass andere dir ihre Account Tabellen auf einem Einfachen Weg zukommen lassen koennen.

So wuerde die Datenbank wachsen und die Sicherheit fuer die User steigen.
Habe ich auch schon dran gedacht, allerdings möchte ich das nicht komplett automatisieren, weil meine Datenbestände dann wohl bald nicht mehr repräsentativ wären.

Ich überlege mir dazu mal was.
rollback is offline  
Thanks
2 Users
Old 01/07/2016, 13:31   #6

 
elite*gold: 0
Join Date: Feb 2008
Posts: 2,754
Received Thanks: 1,748
Quote:
Originally Posted by Seחsi View Post
Ich Release heute eine kleine API zum Prüfen ob Accountdaten in Releasten Accounttabellen sind. Natürlich kann ich hier nur die Überprüfen, die ich selbst habe, eine 100% Garantie ist dies also nicht.
[...]
Rückgabe:
  • Die Rückgabe ist ein JSON-String, der immer die Keys "id_released", "pw_released" und "combination_released" enthält
  • Der Standardwert ist jeweils 0 (false)
  • "id_released" ist 1, wenn die übergebene ID gefunden wurde
  • "pw_released" ist 1, wenn das übergebene Passwort gefunden wurde
  • "combination_released" ist 1, wenn die übergebene ID in Kombination mit dem übergebenen Passwort gefunden wurde
  • Wenn ein Fehler, welcher Form auch immer, beim Ausführen auftritt, sind die Werte IMMER 0 und es ist ein weiterer Key ("error") mit der Fehlermeldung zu sehen.
[...]
Falls du die Rückgabe irgendwann noch ein wenig optimieren möchtest, könntest du das alles in eine Statusvariable zusammenfassung und dann die error-section nur bedingt mitzusenden.

Du könntest einfach ein 3-Bit Flag her nehmen, z.B.
ID_FOUND = 1,
PW_FOUND = 2

Setzt man beide Werte, sprich (ID_FOUND | PW_FOUND) so impliziert das, dass offensichtlich beide gefunden wurden.
BOTH_FOUND = 3

Kann keiner gefunden werden, so bleibt das Flag einfach auf 0.
NOT_FOUND = 0

Möchtest du einen error indizieren, so kannst du einfach z.B. -1 als Statuswert nehmen und dann den error setzen.


Alles in allem sparst du so nur ein paar Byte, die übertragen werden. Nichts wildes. Ich denke aber auch, dass das einfacher zu erweitern und zu ändern wäre.
Computerfreek is offline  
Thanks
1 User
Old 01/07/2016, 15:18   #7

 
elite*gold: 83
Join Date: Nov 2013
Posts: 2,891
Received Thanks: 2,764
Quote:
Originally Posted by Computerfreek View Post
Falls du die Rückgabe irgendwann noch ein wenig optimieren möchtest, könntest du das alles in eine Statusvariable zusammenfassung und dann die error-section nur bedingt mitzusenden.

Du könntest einfach ein 3-Bit Flag her nehmen, z.B.
ID_FOUND = 1,
PW_FOUND = 2

Setzt man beide Werte, sprich (ID_FOUND | PW_FOUND) so impliziert das, dass offensichtlich beide gefunden wurden.
BOTH_FOUND = 3

Kann keiner gefunden werden, so bleibt das Flag einfach auf 0.
NOT_FOUND = 0

Möchtest du einen error indizieren, so kannst du einfach z.B. -1 als Statuswert nehmen und dann den error setzen.


Alles in allem sparst du so nur ein paar Byte, die übertragen werden. Nichts wildes. Ich denke aber auch, dass das einfacher zu erweitern und zu ändern wäre.
Werde darüber mal nachdenken, allerdings ist nicht unbedingt wenn id und pw found 1 sind auch die Kombination gefunden, weshalb ich neben der 3 noch eine Werte Information bräuchte. Das müsste dann also wieder entweder um einen weiteren key erweitert werden oder die Flag erweitert werden.
rollback is offline  
Old 01/08/2016, 11:10   #8
Trade Restricted
 
#Secresy's Avatar
 
elite*gold: 0
The Black Market: 209/1/2
Join Date: Jan 2013
Posts: 2,681
Received Thanks: 2,718
Anstatt die Api php zu releasen, manche Menschen besitzen größere Datenmengen als ihr
#Secresy is offline  
Thanks
1 User
Old 01/08/2016, 12:56   #9

 
elite*gold: 0
Join Date: Feb 2008
Posts: 2,754
Received Thanks: 1,748
Quote:
Originally Posted by #Secresy View Post
Anstatt die Api php zu releasen, manche Menschen besitzen größere Datenmengen als ihr
Nur verstehen diese Menschen leider das Prinzip von Open Source nicht.
Wer mehr Daten besitzt kann diese ja dem TE zu senden.

Sollte das Projekt Open Source werden, so wäre es auch schön, entsprechende Listen und Datensätze öffentlich zu haben. Um dabei jedoch die Sicherheit der User gewährleisten zu können, finde ich sollte man jeweils ID und PW noch einmal mit SHA2 Hashen, sodass am Ende für die ID gilt: hash=SHA256(PASSWORD(login)) und für das Passwort sollte ebenso gelten hash=SHA256(PASSWORD(password)).
Möchte man das ganze in PHP ohne Datenbank implementieren, so wäre das
sha256(sha1(hex2bin(SHA1(password))))..
Computerfreek is offline  
Old 01/08/2016, 18:22   #10
 
elite*gold: 0
Join Date: Jan 2016
Posts: 35
Received Thanks: 8
Wird bestimmt einige Leute davor retten gehackt zu werden

Super Release!
.Optionz is offline  
Old 01/08/2016, 20:12   #11

 
elite*gold: 83
Join Date: Nov 2013
Posts: 2,891
Received Thanks: 2,764
Quote:
Originally Posted by Computerfreek View Post
Nur verstehen diese Menschen leider das Prinzip von Open Source nicht.
Wer mehr Daten besitzt kann diese ja dem TE zu senden.

Sollte das Projekt Open Source werden, so wäre es auch schön, entsprechende Listen und Datensätze öffentlich zu haben. Um dabei jedoch die Sicherheit der User gewährleisten zu können, finde ich sollte man jeweils ID und PW noch einmal mit SHA2 Hashen, sodass am Ende für die ID gilt: hash=SHA256(PASSWORD(login)) und für das Passwort sollte ebenso gelten hash=SHA256(PASSWORD(password)).
Möchte man das ganze in PHP ohne Datenbank implementieren, so wäre das
sha256(sha1(hex2bin(SHA1(password))))..
Kann gerne meinen Datenbestand öffentlich machen. Werde das dann alles nochmal mit sha256 Hashen. Werde mich da ransetzen sobald ich Zeit habe.
rollback is offline  
Old 01/10/2016, 20:21   #12
 
xCPx's Avatar
 
elite*gold: 20
Join Date: Jun 2011
Posts: 2,897
Received Thanks: 3,336
Finde ich ne coole Idee (:
Wenn ich von der Schulung wieder komm und mal Zeit hab kriegst von mir mal n grösseren Batzen.
xCPx is offline  
Thanks
1 User
Old 01/23/2016, 17:27   #13

 
elite*gold: 83
Join Date: Nov 2013
Posts: 2,891
Received Thanks: 2,764
Mein Datenbestand kann nun eingesehen werden und die Daten sind nun ausserdem noch mit SHA256 gehasht worden.
rollback is offline  
Thanks
1 User
Reply


Similar Threads Similar Threads
Regi Page Daten ??
07/06/2011 - Metin2 - 4 Replies
Hi ich habe eine frage , ich wollte eine Regi page erstellen aber jetzt muss ich ein paar sachen ausfülen aber was gehört wo hin ?? da kommt das hier: Hier Der link für das Bild wie es ausieht: Directupload.net - Dobwctbxo.jpg Bitte hilft mir und sagt welche daten ich da eingeben muss . MfG
[VB] Daten suche in XML/Datenbanken
05/07/2011 - .NET Languages - 1 Replies
Hallo liebe Epvpers Coders Community, da ich nicht weiterkomme und hier immer kompetente Hilfe bekommen habe, trage ich mal meine Frage vor. Ich arbeite zurzeit an einem neuen Projekt. Möchte ein Programm mit VB schreiben, welches 2 Suchfelder hat, 1. Suche nach Item ID u. 2. nach Item Name. Nach Erfolg der suche soll unten in Label Feld eine Info zu dem "Item" angegeben werden. Bspl. Suche Item ID 2932 , oder Item Wasser Wie sortiere ich aber die verschiedenen Items in eine XML...
Die Daten sind unzulässig
03/09/2011 - Technical Support - 12 Replies
Hallo leute ich wollte gerade einen Grafiktreiber installieren damit ich minecraft spielen kann und plötzlich kam am anfang der installation: Die daten sind unzulässig. Kann mir einer weiterhelfen?
[Gesucht]: Regi+Rangliste die auf Website integrierbar sind!
02/12/2011 - Metin2 Private Server - 3 Replies
Hi, ich suche wie oben beschrieben eine Regipage und eine Rangliste die man auf seiner Website integrieren kann. Habe soetwas mal gefunden aber finde es nicht mehr, Hilfe bitte. Gruß Yusago



All times are GMT +2. The time now is 06:25.


Powered by vBulletin®
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2024 elitepvpers All Rights Reserved.