Passwort per MD 5 Verschlüsseln wie?

Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!

Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
  • Hey will mein Register/login etwas absichern.
    mit md5 aber wie?



    stock Register(playerid,key[])
    {
    new Spielerdatei[64];
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.txt",name);
    dini_Create(Spielerdatei);
    dini_Set(Spielerdatei,"Passwort",key);
    SendClientMessage(playerid,HELLGRÜN,"Erfolgreich registriert, viel Spaß.");
    SetPlayerScore(playerid,3);
    SetPVarInt(playerid,"loggedin",1);
    return 1;
    }



    Login:




    stock Login(playerid,key[])
    {
    new Spielerdatei[64];
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.txt",name);
    if(!strcmp(key,dini_Get(Spielerdatei,"Passwort"),true))
    {
    LoadAccount(playerid);
    SendClientMessage(playerid,HELLGRÜN,"Erfolreich eingeloggt viel Spaß noch.");
    return 1;
    }
    else
    {
    SendClientMessage(playerid,ROT,"Das Passwort war nicht richtig.");
    ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_INPUT,"Login","Dein Account wurde gefunden. \n Gib bitte das Passwort ein.","Login","Abbrechen");
    return 1;
    }
    }


    LoadAcc:


    stock LoadAccount(playerid)
    {
    new Spielerdatei[64];
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.txt",name);
    SetPlayerScore(playerid,dini_Int(Spielerdatei,"Level"));
    GivePlayerMoney(playerid,dini_Int(Spielerdatei,"Geld"));
    SetPVarInt(playerid,"Adminlevel",dini_Int(Spielerdatei,"Adminlevel"));
    SetPVarInt(playerid,"Fraktion",dini_Int(Spielerdatei,"Fraktion"));
    SetPVarInt(playerid,"Baned",dini_Int(Spielerdatei,"Baned"));
    if(GetPVarInt(playerid,"Baned")==1)
    {
    SendClientMessage(playerid,ROT,"Du bist vom Server gebannt.");
    SendClientMessage(playerid,ROT,"Du bist vom Server gebannt.");
    SendClientMessage(playerid,ROT,"Du bist vom Server gebannt.");
    SendClientMessage(playerid,ROT,"Du bist vom Server gebannt.");
    SendClientMessage(playerid,ROT,"Du bist vom Server gebannt.");
    Kick(playerid);
    }
    SetPVarInt(playerid,"loggedin",1);
    return 1;
    }



    SaveAccount:


    stock SpielerSpeichern(playerid)
    {
    if(GetPVarInt(playerid,"loggedin")==1)
    {
    new Spielerdatei[64];
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.txt",name);
    dini_IntSet(Spielerdatei,"Level",GetPlayerScore(playerid));
    dini_IntSet(Spielerdatei,"Geld",GetPlayerMoney(playerid));
    dini_IntSet(Spielerdatei,"Adminlevel",GetPVarInt(playerid,"Adminlevel"));
    dini_IntSet(Spielerdatei,"Fraktion",GetPVarInt(playerid,"Fraktion"));
    dini_IntSet(Spielerdatei,"Baned",GetPVarInt(playerid,"Baned"));
    }
    return 1;
    }


    OnPlayerConnect:


    //Register & Login
    new Spielerdatei[64];
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.txt",name);
    if(dini_Exists(Spielerdatei))
    {
    ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_INPUT,"Login","Dein Account wurde gefunden. \n Gib bitte das Passwort ein.","Login","Abbrechen");
    }
    else
    {
    ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_INPUT,"Registrierung","Gib bitte dein gewünschtes Passwort ein:","Register","Abbrechen");
    }
    PlayAudioStreamForPlayer(playerid, "http://www.iloveradio.de//listen.m3u");
    SpawnPlayer(playerid);




    DIALOG LOGIN:


    if(dialogid==DIALOG_LOGIN)
    {
    if(response==0)
    {
    SendClientMessage(playerid,ROT,"Du hast den Vorgang abgebrochen.");
    Kick(playerid);
    return 1;
    }
    if(response==1)
    {
    if(!strlen(inputtext))
    {
    SendClientMessage(playerid,ROT,"Das Passwort war nicht lang genug.");
    ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_INPUT,"Login","Dein Account wurde gefunden. \n Gib bitte das Passwort ein.","Login","Abbrechen");
    return 1;
    }
    else
    {
    Login(playerid,inputtext);
    return 1;
    }
    }
    }


    DIALOG REGISTER:


    if(dialogid==DIALOG_REGISTER)
    {
    if(response==0)
    {
    SendClientMessage(playerid,ROT,"Du hast den Vorgang abgebrochen.");
    Kick(playerid);
    return 1;
    }
    if(response==1)
    {
    if(!strlen(inputtext))
    {
    SendClientMessage(playerid,ROT,"Das Passwort war nicht lang genug.");
    ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_INPUT,"Registrierung","Gib bitte dein gewünschtes Passwort ein:","Register","Abbrechen");
    return 1;
    }
    else
    {
    Register(playerid,inputtext);
    return 1;
    }
    }
    }
    return 1;

  • dies ist relativ einfach.


    Zuerst schauen wir uns deinen register stock an:

    Code
    dini_Set(Spielerdatei,"Passwort",key);


    Wie dir sicher klar ist ist "key" deine variable welche dein kennwort enthält. um aus der eingabe jetzt einen md5hash zu erstellen nutzen wir das md5 include:


    Code
    dini_Set(Spielerdatei,"Passwort",md5(key));


    Jetzt wird bereits beim registrieren das gewünschte userpasswort verschlüsselt gespeichert.
    Nun müssen wir nurnoch den login modifizieren:


    Hier wird NOCH die variable der usereingabe mit dem wert in der spielerdatei verglichen:

    Code
    if(!strcmp(key,dini_Get(Spielerdatei,"Passwort"),true)


    Modifiziert würde das ganze so aussehen:

    Code
    if(!strcmp(md5(key),dini_Get(Spielerdatei,"Passwort"),true)



    das passende include findest du hier:
    http://www.bfxsoftware.kilu.de/downloads/md5_mirror/


    includen tust du es indem du es im pawno ordner in den include ordner reinhaust und in deinem script oben "#include <md5>" hinzufügst.


    mfg
    Helixxx


  • C:\Users\Fabian\Desktop\Nies\gamemodes\drpselfmade.pwn(1712) : error 017: undefined symbol "md5"
    C:\Users\Fabian\Desktop\Nies\gamemodes\drpselfmade.pwn(1725) : error 017: undefined symbol "md5"


    dini_Set(Spielerdatei,"Passwort",md5(key));


    if(!strcmp(md5(key),dini_Get(Spielerdatei,"Passwort"),true))


    include drinne und oben eingefügt

  • hast du oben bei den includes das hier stehen?

    Code
    #include <md5>


    damit müsste es eigentlich gehen... deine fehlermeldungen deuten darauf hin das etwas nicht mit dem includen hingehauen hat..


    Hab dir ansonsten nochmal mein include hochgeladen:
    (rechtsklick-> ziel speichern unter)

    Code
    http://files.stinkefaul.de/pawno/includes/md5.inc


    das kommt dann in folgenden pfad:

    Code
    ...\samp\pawno\include


    ansonsten mal abspeichern und pawno als administrator neu starten.

  • wie füge ich deins ein sehe nurn code

  • MD5 zu verwenden ist Quatsch - es ist veraltet, beinhaltet bekannte Collisions, für Rainbow Tables kein Problem und ist in vielen Datenbanken im Netz ausführlich aufgeführt.