Beiträge von LeonMrBonnie

    Sehe den Fehler selbst mein "new query[356]" ist zu klein da das passwort jetzt viel länger ist durch den 64 zeichen salt.
    Habe es jetzt auf "new query[425]" geändert mal sehen obs klappt.



    EDIT:
    Hat geklappt, danke. /close

    SQL
    [join] LeonMrBonnie has joined the server (0:127.0.0.1)
    [Warning] db_query: Query failed: near ",": syntax error
    [Error] db_free_result(): invalid result handle 0

    Den Error kriege ich.


    Der Code:

    if(dialogid == DIALOG_REGISTER)
    {
    if(response)
    {
    if(isnull(inputtext)) return ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_PASSWORD,"{FFFFFF}Registration","{FFFFFF}Gebe dein Passwort ein um dich zu registrieren:","Registrieren","Verlassen");



    new HashPass[64 + 1];
    SHA256_PassHash(inputtext, "eWvgYIpHsX6ckTDlCwiAI7VOyJvt2bqiJpg8gNeYeEAWy7ujFIVMkkdG4fWmGkIP", HashPass, sizeof HashPass);



    new query[356];
    //ac
    format(query, sizeof(query), "INSERT INTO Players (Name, Password, Level, ForceAC, Kills, Deaths, Score, VIP, MaxRoundKills, MaxRoundDamage, Headshots, Tbags, PunchK, DeagleK, ShotgunK, SpasK, MP5K, AK47K, M4K, RifleK, SniperK, GrenadeK, Gun2, Gun3, Gun4, Gun5, Gun6) VALUES('%s', '%s', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 33, 0)", DB_Escape(Player[playerid][Name]), HashPass);
    db_free_result(db_query(sqliteconnection, query));



    format(HashPass, sizeof(HashPass), "Du hast dich erfolgreich registriert. Passwort: {55FF55}%s", inputtext);
    SendClientMessage(playerid, YELLOW_COLOR, HashPass);
    SendClientMessage(playerid, YELLOW_COLOR, "Nutze {FFFFFF}/cmds {FFFF00}für die Commands und {FFFFFF}/updates {FFFF00}um über die letzten Updates bescheid zu wissen.");
    SendClientMessage(playerid, YELLOW_COLOR, "Vergesse nicht mit {FFFFFF}/rules {FFFF00}die Regeln durchzulesen.");

    Ah ok danke,
    ist das dann bei meiner Login Anfrage so richtig?

    if(dialogid == DIALOG_LOGIN)
    {
    if(response)
    {
    if(isnull(inputtext)) return ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD,"{FFFFFF}Login","{FFFFFF}Gebe dein Passwort ein um dich einzuloggen:","Einloggen","Verlassen");



    new HashPass[64 + 1];
    SHA256_PassHash(inputtext, "eWvgYIpHsX6ckTDlCwiAI7VOyJvt2bqiJpg8gNeYeEAWy7ujFIVMkkdG4fWmGkIP", HashPass, sizeof HashPass);



    new Query[256];
    format(Query, sizeof(Query), "SELECT * FROM `Players` WHERE `Name` = '%s' AND `Password` = '%s'", DB_Escape(Player[playerid][Name]), HashPass);
    new DBResult:res = db_query(sqliteconnection, Query);

    [wiki]http://wiki.sa-mp.com/wiki/SHA256_PassHash[/wiki]


    Das Passwort wird hier gehashed:

    Code
    new HashPass[140];
    format(HashPass, sizeof(HashPass), "%d", udb_hash(inputtext));

    Alles Weitere kannste dir dann denke ich ableiten.

    Vielleicht ne blöde Frage aber;
    ist das so richtig, oder wie soll ich sonst den eingegeben Text hashen?

    if(dialogid == DIALOG_REGISTER)
    {
    if(response)
    {
    if(isnull(inputtext)) return ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_PASSWORD,"{FFFFFF}Registration","{FFFFFF}Gebe dein Passwort ein um dich zu registrieren:","Registrieren","Verlassen");



    new HashPass[64 + 1];
    SHA256_PassHash("inputtext", "ewvgYIpHsX6ckTDlCwiAI7VOyJvt2bqiJPg8gNeYeEAWy7ujFIVMkkDG4fWmGKIP", HashPass, sizeof HashPass);



    new query[356];
    //ac
    format(query, sizeof(query), "INSERT INTO Players (Name, Password, Level, ForceAC, Kills, Deaths, Score, VIP, MaxRoundKills, MaxRoundDamage, Headshots, Tbags, PunchK, DeagleK, ShotgunK, SpasK, MP5K, AK47K, M4K, RifleK, SniperK, GrenadeK, Gun2, Gun3, Gun4, Gun5, Gun6) VALUES('%s', '%s', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 33, 0)", DB_Escape(Player[playerid][Name]), HashPass);
    db_free_result(db_query(sqliteconnection, query));



    format(HashPass, sizeof(HashPass), "Du hast dich erfolgreich registriert. Passwort: {55FF55}%s", inputtext);
    SendClientMessage(playerid, YELLOW_COLOR, HashPass);
    SendClientMessage(playerid, YELLOW_COLOR, "Nutze {FFFFFF}/cmds {FFFF00}für die Commands und {FFFFFF}/updates {FFFF00}um über die letzten Updates bescheid zu wissen.");
    SendClientMessage(playerid, YELLOW_COLOR, "Vergesse nicht mit {FFFFFF}/rules {FFFF00}die Regeln durchzulesen.");

    Hallo,
    ich habe mein Login/Register System am Anfang geschrieben als ich angefangen habe zu scripten und deswegen sind meine Passwörter momentan auch nur mit UDB_Hash gehasht, da mir aber nun aufgefallen ist dass dies sehr unsicher ist würde ich gerne die SHA256 Funktion von SAMP dafür nutzen, wie kann ich das in meinem Script einbauen?


    Ich benutze SQLite.


    Mein momentaner Code:

    if(dialogid == DIALOG_REGISTER)
    {
    if(response)
    {
    if(isnull(inputtext)) return ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_PASSWORD,"{FFFFFF}Registration","{FFFFFF}Gebe dein Passwort ein um dich zu registrieren:","Registrieren","Verlassen");



    new HashPass[140];
    format(HashPass, sizeof(HashPass), "%d", udb_hash(inputtext));



    new query[356];
    //ac
    format(query, sizeof(query), "INSERT INTO Players (Name, Password, Level, ForceAC, Kills, Deaths, Score, VIP, MaxRoundKills, MaxRoundDamage, Headshots, Tbags, PunchK, DeagleK, ShotgunK, SpasK, MP5K, AK47K, M4K, RifleK, SniperK, GrenadeK, Gun2, Gun3, Gun4, Gun5, Gun6) VALUES('%s', '%s', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 33, 0)", DB_Escape(Player[playerid][Name]), HashPass);
    db_free_result(db_query(sqliteconnection, query));



    format(HashPass, sizeof(HashPass), "Du hast dich erfolgreich registriert. Passwort: {55FF55}%s", inputtext);
    SendClientMessage(playerid, YELLOW_COLOR, HashPass);
    SendClientMessage(playerid, YELLOW_COLOR, "Nutze {FFFFFF}/cmds {FFFF00}für die Commands und {FFFFFF}/updates {FFFF00}um über die letzten Updates bescheid zu wissen.");
    SendClientMessage(playerid, YELLOW_COLOR, "Vergesse nicht mit {FFFFFF}/rules {FFFF00}die Regeln durchzulesen.");
    .....
    .....

    Und H1Z1 hat es von H1N1, der Bezeichnung der Grippe geklaut oder wie muss ich das verstehen? Hast du die auch so wie hier zugetextet?Kannst du nicht bitte einfach wie jeder andere anständige Wutbürger über die Politik meckern, anstatt diesen Server hier schlechtzureden?


    B2T:
    Die Idee und Serverwerbung haben mich überzeug, dem Server morgen mal einen Besuch abzustatten.

    Die 1. Betaphase ist aber erst Freitag ^^


    if(issuerid != INVALID_PLAYER_ID && (weaponid == 34) && bodypart == 9 && Spieler[playerid][pFraktion] == 8)
    {
    new Float:x,Float:y,Float:z;
    GetPlayerPos(playerid,x,y,z);
    format(string,sizeof(string),"~w~HEADSHOT~n~~w~[%.02f M]",GetPlayerDistanceFromPoint(issuerid,x,y,z));
    GameTextForPlayer(issuerid, string, 3000, 6);
    format(string,sizeof(string),"~w~HEADSHOT~n~~w~[%.02f M]",GetPlayerDistanceFromPoint(playerid,x,y,z));
    GameTextForPlayer(playerid, string, 3000, 6);
    SetPlayerHealth(playerid, 0.0);
    }