Guten Abend alle zsm,
Ich habe versucht ein SHA256 Hash einzubauen in mein Login/Registersystem, doch leider funktioniert es nicht ganz.
In der Datenbank bzw. Tabelle wird der Hash und der Salt gespeichert, nur zurück, beim Login, funktioniert es irgendwie nicht
Ich denke es wird ein Fehler im Logindialogbereich sein, da hash und pPassword nicht richtig gesetzt sind denke ich, aber wirklich finden tue ich den Fehler nicht
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
switch(dialogid)
{
case DIALOG_REGISTER:
{
if(!response) return Kick(playerid);
if(strlen(inputtext) < 4) return ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_PASSWORD, #SERVERNAME "- Registration", "Bitte registriere Dich:\n{FF0000}Mindestens 4 Zeichen!", "Ok", "Abbrechen");
new query[256], salt[11];
for(new i; i < 10; i++){
salt[i] = random(79) + 47;
} salt[10] = 0;
SHA256_PassHash(inputtext, salt, pData[playerid][pPassword], 65);
mysql_format(handle, query, sizeof(query), "INSERT INTO `accounts` (`username`, `password`, `salt`) VALUES ('%e', '%e', '%e')", pData[playerid][pName], pData[playerid][pPassword], salt);
mysql_pquery(handle, query, "OnPlayerRegister", "d", playerid);
return 1;
}
case DIALOG_LOGIN:
{
if(!response) return Kick(playerid);
if(strlen(inputtext) < 4) return ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, #SERVERNAME "- Anmeldung", "Bitte logge Dich ein:\n{FF0000}Mindestens 4 Zeichen!", "Ok", "Abbrechen");
new query[256], hash[65];
SHA256_PassHash(inputtext, pData[playerid][pSalt], hash, 65);
mysql_format(handle, query, sizeof(query), "SELECT * FROM `accounts` WHERE `username` = '%e' AND `password` = ('%e')", pData[playerid][pName], hash);
mysql_pquery(handle, query, "OnPlayerLogin", "d", playerid);
return 1;
}
}
return 0;
}
Hoffe mir kann wer weiterhelfen und danke im voraus .
Mit freundlichen Grüßen
KazutoSensei