Alles anzeigenmaddin natürlich kann man bei wiki nachschauen
war auch nur ein vorschlag, damit dein tut perfekt ist
allso die funktion überprüft den string, und sichert ihn
new Test1[5]; new Test2[5];
mysql_real_escape_string(Test1,Test2);
dan ist test1 was rein geht und test2 das was in mysql geht
hab ich das so richtig verstanden ??
Jap. Am besten schaust du dir das mal an dann weisst du genau weshalb das wichtig ist. Sicher ist sicher
xivo
Also für sha1 und whirpool gibts ja ein plugin, für MD5 gibts eine include von y_less. http://pastebin.com/0yKdjV8E
Dann benutzt du halt z.b
if(!strcmp(MD5_Hash(inputtext), ReturnPasswort(SpielerName), true))
um das eingegebene passwort als md5 mit dem aus der datenbank zu vergleichen. Das setzt aber vorraus das du das Passwort auch als md5 in der datenbank gespeichert hast.
Das kannst du machen, indem du die CreateAccount funktion so umschreibst:
stock CreateAccount(playerid, pass[])
{
new query[256],Name[MAX_PLAYER_NAME];
GetPlayerName(playerid, Name, MAX_PLAYER_NAME);
mysql_real_escape_string(Name,Name);
mysql_real_escape_string(pass,pass);
format(query, sizeof(query), "INSERT INTO accounts (Name, Passwort) VALUES ('%s', MD5('%s'))", Name, pass);
mysql_query(query);
return true;
}
Da mysql eingebaute hash funktionen hat geht das recht einfach.
Das ganze geht so übrigens auch mit SHA1,SHA2-224, SHA2-256, SHA2-384 und SHA2-512. Falls es jemanden interessiert, einfach die format zeile ersetzen:
format(query, sizeof(query), "INSERT INTO accounts (Name, Passwort) VALUES ('%s', SHA1('%s'))", Name, pass);//SHA1
format(query, sizeof(query), "INSERT INTO accounts (Name, Passwort) VALUES ('%s', SHA2('%s', 224))", Name, pass);//SHA2-224
format(query, sizeof(query), "INSERT INTO accounts (Name, Passwort) VALUES ('%s', SHA2('%s', 256))", Name, pass);//SHA2-256
format(query, sizeof(query), "INSERT INTO accounts (Name, Passwort) VALUES ('%s', SHA2('%s', 384))", Name, pass);//SHA2-384
format(query, sizeof(query), "INSERT INTO accounts (Name, Passwort) VALUES ('%s', SHA2('%s', 512))", Name, pass);//SHA2-512
Aber wie gesagt, ausser Whirpool, MD5 und SHA512 gibt es keine andere methode die in pawn unterstützt wird. Jedenfalls kenne ich keine, lasse mich aber gerne eines bessere belehren.