Sichere Registrierung - Hallo?

  • Hey Leute,
    als Fortsetzung auf den Thread "Sicherer Login" folgt jetzt natürlich "Sichere Registrierung ;) Erstmal möchte ich ganz ohne Code wissen, was ihr denkt, was man beachten sollte? Das können zum


    Beispiel Angaben zum Passwort sein oder so was...


    Der Code ist natürlich auch wichtig. Falls es jemanden interessiert: Für diesen Code habe ich 15 Minuten gebraucht.


    Code
    <span class="syntaxhtml"><br /><span class="syntaxdefault"><?php<br />    include</span><span class="syntaxkeyword">(</span><span class="syntaxstring">"oben.php"</span><span class="syntaxkeyword">);<br /></span><span class="syntaxdefault">    $string </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> </span><span class="syntaxstring">""</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">    if</span><span class="syntaxkeyword">(isset(</span><span class="syntaxdefault">$_SESSION</span><span class="syntaxkeyword">[</span><span class="syntaxstring">"c1l2o3u4d-userid"</span><span class="syntaxkeyword">]))</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault">        header</span><span class="syntaxkeyword">(</span><span class="syntaxstring">"Location:index.php"</span><span class="syntaxkeyword">);<br /></span><span class="syntaxdefault">    </span><span class="syntaxkeyword">}<br /></span><span class="syntaxdefault">    elseif</span><span class="syntaxkeyword">(isset(</span><span class="syntaxdefault">$_POST</span><span class="syntaxkeyword">[</span><span class="syntaxstring">"submit-register"</span><span class="syntaxkeyword">]))</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault">        if</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$_POST</span><span class="syntaxkeyword">[</span><span class="syntaxstring">"nickname"</span><span class="syntaxkeyword">]</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">!==</span><span class="syntaxdefault"> </span><span class="syntaxstring">""</span><span class="syntaxdefault"> AND $_POST</span><span class="syntaxkeyword">[</span><span class="syntaxstring">"password"</span><span class="syntaxkeyword">]</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">!==</span><span class="syntaxdefault"> </span><span class="syntaxstring">""</span><span class="syntaxdefault"> AND $_POST</span><span class="syntaxkeyword">[</span><span class="syntaxstring">"password2"</span><span class="syntaxkeyword">]</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">!==</span><span class="syntaxdefault"> </span><span class="syntaxstring">""</span><span class="syntaxdefault"> AND $_POST</span><span class="syntaxkeyword">[</span><span class="syntaxstring">"firstname"</span><span class="syntaxkeyword">]</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">!==</span><span class="syntaxdefault"> </span><span class="syntaxstring">""</span><span class="syntaxdefault"> AND $_POST</span><span class="syntaxkeyword">[</span><span class="syntaxstring">"surname"</span><span class="syntaxkeyword">]</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">!==</span><span class="syntaxdefault"> <br /><br /></span><span class="syntaxstring">""</span><span class="syntaxdefault"> AND $_POST</span><span class="syntaxkeyword">[</span><span class="syntaxstring">"purpose"</span><span class="syntaxkeyword">]</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">!==</span><span class="syntaxdefault"> </span><span class="syntaxstring">""</span><span class="syntaxkeyword">)</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault">            $connection </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> mysql_connect</span><span class="syntaxkeyword">(</span><span class="syntaxstring">"localhost"</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> </span><span class="syntaxstring">"yamram-dev"</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> </span><span class="syntaxstring">"********"</span><span class="syntaxkeyword">);<br /></span><span class="syntaxdefault">            if </span><span class="syntaxkeyword">(!</span><span class="syntaxdefault">mysql_select_db </span><span class="syntaxkeyword">(</span><span class="syntaxstring">"yamram-dev"</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> $connection</span><span class="syntaxkeyword">))</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">{</span><span class="syntaxdefault">  <br />                $string </span><span class="syntaxkeyword">=</span><span class="syntaxdefault">  $string</span><span class="syntaxkeyword">.</span><span class="syntaxstring">"<p class='error'>Ein Datenbankfehler ist aufgetreten. Wir werden uns schnellstmöglichst darum kümmern.<span class='result'>Bitte <br /><br />haben Sie Verständnis.</span></p>"</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">            </span><span class="syntaxkeyword">}<br /></span><span class="syntaxdefault">            $nickname </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> mysql_real_escape_string</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$_POST</span><span class="syntaxkeyword">[</span><span class="syntaxstring">"nickname"</span><span class="syntaxkeyword">]);<br /></span><span class="syntaxdefault">            $password </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> mysql_real_escape_string</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$_POST</span><span class="syntaxkeyword">[</span><span class="syntaxstring">"password"</span><span class="syntaxkeyword">]);<br /></span><span class="syntaxdefault">            $password2 </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> mysql_real_escape_string</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$_POST</span><span class="syntaxkeyword">[</span><span class="syntaxstring">"password2"</span><span class="syntaxkeyword">]);<br /></span><span class="syntaxdefault">            $firstname </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> mysql_real_escape_string</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$_POST</span><span class="syntaxkeyword">[</span><span class="syntaxstring">"firstname"</span><span class="syntaxkeyword">]);<br /></span><span class="syntaxdefault">            $surname </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> mysql_real_escape_string</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$_POST</span><span class="syntaxkeyword">[</span><span class="syntaxstring">"surname"</span><span class="syntaxkeyword">]);<br /></span><span class="syntaxdefault">            $purpose </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> mysql_real_escape_string</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$_POST</span><span class="syntaxkeyword">[</span><span class="syntaxstring">"purpose"</span><span class="syntaxkeyword">]);<br /></span><span class="syntaxdefault">            $sql </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> </span><span class="syntaxstring">"SELECT * FROM `user` WHERE `nickname` = '"</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">$nickname</span><span class="syntaxkeyword">.</span><span class="syntaxstring">"';"</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">            $result </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> mysql_query</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$sql</span><span class="syntaxkeyword">);<br /></span><span class="syntaxdefault">            if</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">mysql_fetch_assoc</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$result</span><span class="syntaxkeyword">))</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault">                $string </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> $string</span><span class="syntaxkeyword">.</span><span class="syntaxstring">"<p class='error'>Der Username ist schon vorhanden.<span class='result'>Bitte wählen Sie einen anderen <br /><br />Usernamen.</span></p>"</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">            </span><span class="syntaxkeyword">}<br /></span><span class="syntaxdefault">            elseif</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$password </span><span class="syntaxkeyword">==</span><span class="syntaxdefault"> $password2</span><span class="syntaxkeyword">)</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault">                $sql </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> </span><span class="syntaxstring">"INSERT INTO `user` (`nickname`, `password`, `regdate`, `surname`, `firstname`) VALUES ('"</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">$nickname</span><span class="syntaxkeyword">.</span><span class="syntaxstring">"',  '"</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">md5</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$password</span><span class="syntaxkeyword">).</span><span class="syntaxstring">"', <br /><br />CURRENT_TIMESTAMP ,  '"</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">$firstname</span><span class="syntaxkeyword">.</span><span class="syntaxstring">"',  '"</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">$surname</span><span class="syntaxkeyword">.</span><span class="syntaxstring">"');"</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">                if</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">mysql_query</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$sql</span><span class="syntaxkeyword">))</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault">                    $string </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> $string</span><span class="syntaxkeyword">.</span><span class="syntaxstring">"<p class='error'>Ein Problem mit der Datenbank ist aufgetreten.<span class='result'>Bitte haben Sie <br /><br />Verständnis.</span></p>"</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">                </span><span class="syntaxkeyword">}<br /></span><span class="syntaxdefault">                else </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault">                    $sql </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> </span><span class="syntaxstring">"SELECT * FROM `user` WHERE `nickname` = '"</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">$nickname</span><span class="syntaxkeyword">.</span><span class="syntaxstring">"';"</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">                    $result </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> mysql_query</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$sql</span><span class="syntaxkeyword">);<br /></span><span class="syntaxdefault">                    $sql </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> </span><span class="syntaxstring">"INSERT INTO  `logs` (`nickname`, `class`, `logdate`, `ip`) VALUES ('"</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">$nickname</span><span class="syntaxkeyword">.</span><span class="syntaxstring">"', 'register', CURRENT_TIMESTAMP, '"</span><span class="syntaxkeyword">.<br /><br /></span><span class="syntaxdefault">$_SERVER</span><span class="syntaxkeyword">[</span><span class="syntaxstring">"REMOTE_ADDR"</span><span class="syntaxkeyword">].</span><span class="syntaxstring">"')"</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">                </span><span class="syntaxkeyword">}<br /></span><span class="syntaxdefault">                header</span><span class="syntaxkeyword">(</span><span class="syntaxstring">"Location:index.php?error=7"</span><span class="syntaxkeyword">);<br /></span><span class="syntaxdefault">            </span><span class="syntaxkeyword">}<br /></span><span class="syntaxdefault">            else </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault">                $string </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> $string</span><span class="syntaxkeyword">.</span><span class="syntaxstring">"<p class='error'>Die Passwortbestätigung entspricht nicht dem Passwort.<span class='result'>Bitte versuchen Sie es noch <br /><br />einmal.</span>"</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">            </span><span class="syntaxkeyword">}<br /></span><span class="syntaxdefault">        </span><span class="syntaxkeyword">}<br /></span><span class="syntaxdefault">        else </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault">            $string </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> $string</span><span class="syntaxkeyword">.</span><span class="syntaxstring">"<p class='error'>Sie konnten nicht registriert werden, weil Sie nicht alle Daten eingegeben haben.<span class='result'>Bitte versuchen Sie es <br /><br />noch einmal.</span></p>"</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">        </span><span class="syntaxkeyword">}<br /></span><span class="syntaxdefault">    </span><span class="syntaxkeyword">}<br /></span><span class="syntaxdefault">?><br /></span><h2>Registrieren</h2><br /><span class="syntaxdefault"><?php echo $string</span><span class="syntaxkeyword">;</span><span class="syntaxdefault"> ?><br /></span><p>Hier können Sich registrieren. Dafür müssen Sie einfach alle Felder ausfüllen:</p><br /><form method="post" action=""><br />    <label for="nickname">Username</label> <input type="text" name="nickname" value="<span class="syntaxdefault"><?php echo </span><span class="syntaxkeyword">@</span><span class="syntaxdefault">$_POST</span><span class="syntaxkeyword">[</span><span class="syntaxstring">"nickname"</span><span class="syntaxkeyword">];</span><span class="syntaxdefault"> ?></span>" /><br />    <label for="password">Passwort</label> <input type="password" name="password" value="" /><br />    <label for="password2">Password bestätigen</label> <input type="password" name="password2" value="" /><br />    <label for="firstname">Vorname</label> <input type="text" name="firstname" value="<span class="syntaxdefault"><?php echo </span><span class="syntaxkeyword">@</span><span class="syntaxdefault">$_POST</span><span class="syntaxkeyword">[</span><span class="syntaxstring">"firstname"</span><span class="syntaxkeyword">];</span><span class="syntaxdefault"> ?></span>" /><br />    <label for="surname">Nachname</label> <input type="text" name="surname" value="<span class="syntaxdefault"><?php echo </span><span class="syntaxkeyword">@</span><span class="syntaxdefault">$_POST</span><span class="syntaxkeyword">[</span><span class="syntaxstring">"surname"</span><span class="syntaxkeyword">];</span><span class="syntaxdefault"> ?></span>" /><br />    <label for="purpose">Zweck</label><br />        <select name="purpose"><br />            <option value="business">geschäftlich</option><br />            <option value="private">privat</option><br />        </select><br />    <input type="submit" value="registrieren" name="submit-register" /><br /></form><br /><span class="syntaxdefault"><?php include</span><span class="syntaxkeyword">(</span><span class="syntaxstring">"unten.php"</span><span class="syntaxkeyword">);</span><span class="syntaxdefault"> ?><br /></span></span>


    So, was kann ich an diesem Code besser machen? Auf Empfehlung von drPHIP132 habe ich jetzt direkt mysql_real_escape_string() eingebaut. Das schützt vor SQL Injection habe ich erfahren. Wie


    ihr vielleicht schon gesehen habt, braucht der User nicht mal eine eMail Adresse angeben. Wer sagt, dass das eine doofe bzw. schlechte Idee ist, der soll direkt Bescheid sagen und natürlich auch


    warum.


    Mit freundlichen Grüßen,
    Philipp E.


    PS: Das Projekt macht echt Fortschritte. Bald habe ich das komplette Usersystem fertig und fange mit dem Uploadsystem an O.o

  • Zitat von &quot;Yamram&quot;

    Wie ihr vielleicht schon gesehen habt, braucht der User nicht mal eine eMail Adresse angeben. Wer sagt, dass das eine doofe bzw. schlechte Idee ist, der soll direkt Bescheid sagen und natürlich auch warum.


    *meld* Die E-Mail-Adresse muss abgefragt werden, damit man dem User im Notfall ein neues Passwort zugeschickt werden kann, außerdem würde man andernfalls Spammern leichtes Spiel machen. Die E-Mail-Adresse muss natürlich auch per double-opt-in bestätigt werden.


    Außerdem ist das Passwort nicht verschlüsselt. Im Idealfall geschieht das schon auf dem Client oder es wird verschlüsselt (z. B. HTTPS) zum Server übertragen, damit man es nicht durch "abhören" der Verbindung erfährt.


    Hoffe, ich konnte helfen,
    webmaster3000

  • Wenn du das Passwort in die E-Mail packst, verlange aber von dem Benutzer, dass er, sobald er auf die E-Mail klickt und sich eingeloggt hat, sein Passwort ändert, damit eventuelle Mitleser der E-Mail keinen Zugriff mehr haben.


    PS: Vielleicht bekommst du mehr Antworten, wenn du dich an Reglen wie diese hier hältst:

    Zitat von &quot;[url=http://www.html-seminar.de/forum/news-fragen-und-antworten-zum-board-f2/regeln-zu-korrektem-verhalten-in-diesem-forum-t3340.html

    Regeln[/url]"]Bitte stelle nicht jede kleinste Website vor, die du machst. Stelle besser etwas fertig und präsentiere uns dann etwas ausgefeiltes, das man auch wirklich bewerten kann.


    Ich antworte dir jetzt auch nur, weil du eine konkrete Frage gestellt hab. Ich hab auch keine Lust mir jeden kleinsten Code anzuschauen und außerdem sind Satzzeichen immer noch keine Herdentiere :wink:


    @webmaster:
    Auf dem Client verschlüsseln?


    Dann kann doch jemand, der z.B. durch Datenbank-Hacken, an verschlüsselte Passwörter gekommen ist, diese einfach per JavaScript an den Server schicken und ist angemeldet, oder versteh ich da jetzt was falsch?
    Das würde dann das Verschlüsseln unnötig machen.

  • Sören:
    Alles klar, das ist ja leicht zu realisieren :)


    Ja, aber, wenn das Usersystem nicht sicher ist, dann ist ja eigentlich alles doof, weil die Basis ja durch das Loginsystem gebildet wird ;)


    Ja, werde es ändern, wenn du drauf bestehst :)

  • Zitat von &quot;Yamram&quot;

    Meinst du, es wäre dann sinnvoll, dass ich das Passwort einfach generieren lasse und dann in die eMail packe?


    Ja, so meinte ich es, aber als "Passwort vergessen"-Funktion.


    Zitat von &quot;Sören&quot;

    Dann kann doch jemand, der z.B. durch Datenbank-Hacken, an verschlüsselte Passwörter gekommen ist, diese einfach per JavaScript an den Server schicken und ist angemeldet, oder versteh ich da jetzt was falsch?


    Ich meinte nicht direkt verschlüsseln, sondern eher hashen, z. B. mit md5. Es ging ja such nur darum, dass keine unverschlüsselten Passwörter übertragen werden, falls jemand die Verbindung belauscht. Wenn das nicht geht, wäre das auch nicht schlimm, viele Logins sind unverschlüsselt.

  • Sören: Ja, keine Angst. Ich werde schon nicht jeden Part meines Projekt einzeln checken lassen. Aber ich finde halt einfach, dass der Punkt Usersystem ein sehr wichtiger ist, weil es, wie gesagt, die Basis bildet.


    @drPHIP132: Das habe ich wohl wegen dem ganzen Stress verkackt. Danke :)


    webmaster3000: Achso, also darf der User sich das Passwort doch aussuchen und sein Account wird dann erst durch einen Link, der in der eMail steht, aktiviert. Dann werde ich das mal so machen ;)


    EDIT - 19.01.2012 - 19:00 Uhr
    Ich habe mir gedacht, dass ich ja einfach einen Code machen kann. Dieser könnte zum Beispiel das md5 verschlüsselte aktuelle Datum mit Uhrzeit sein. Was sagt ihr dazu?!


    EDIT - 19.01.2012 - 19:53 Uhr
    Das mit dem Bestätigen des Accounts habe ich jetzt mal nach meiner Idee umgesetzt. Warum ich es nicht so mache, wie beim PHP Kurs? Weil ich MEINE Ideen benutzen will :) Der Registrierungscode ist nun ziemlich schwer zu knacken ;)


    Und noch mal alles zusammen:
    Also, der Besucher gibt die Daten ein und die werden wie oben entsprechend überprüft. Wenn alles in Ordnung ist, wird versucht eine Email an die Adresse zu senden. Diese Email sieht in etwa so aus:


    So, was kann ich jetzt noch verbessern? Ist das jetzt sicher genug?

  • Eure Überwachungstheorien finde ich irgendwie mehr als nur lächerlich..


    Eine Verbindung abhören, da gehört mehr zu als zu wissen was eine IP ist!


    Leute die das Wissen haben so etwas zu bewerkstelligen sind absolut nicht daran interessiert irgendwelchen unkommerziellen Projekten zu schaden.


    Das selbe gilt für das Abfangen von E-Mails, das macht man nicht mit einem kleinen Programm das man sich aus dem Internet runterlädt, da gehört mächtig viel Wissen dazu, also mal immer halblang.


    Aber um mal einen Lösungsweg gegen Verschwörung, Abhörung und sonstigen Attacken im Internet:


    Wer ein Passwort einfach durch die md5 Funktion jagt und es dann speichert ist doch selber Schuld an seiner mangelnden Sicherheit, es gibt so viele tolle Wege Dinge zu verändern so das selbst beim Entschlüsseln mit einer Regenbogentabelle nur Müll heraus kommt, ein Beispiel:


    Wir bekommen aus dem Formular unter Anderem einen Benutzernamen und ein Passwort:


    PHP
    <span class="syntaxhtml"><br /><span class="syntaxdefault"><?php<br />  $benutzername </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> $_POST</span><span class="syntaxkeyword">[</span><span class="syntaxstring">'benutzername'</span><span class="syntaxkeyword">]<br /></span><span class="syntaxdefault">  $passwort </span><span class="syntaxkeyword">=</span><span class="syntaxdefault">     $_POST</span><span class="syntaxkeyword">[</span><span class="syntaxstring">'passwort'</span><span class="syntaxkeyword">]<br /></span><span class="syntaxdefault">?></span>    <br /></span>


    Wie würde man nun normal vorgehen? Richtig:


    PHP
    <span class="syntaxhtml"><br /><span class="syntaxdefault"><?php<br />  $passwort_verschluesselt </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> md5</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$passwort</span><span class="syntaxkeyword">);<br /></span><span class="syntaxdefault">  </span><span class="syntaxcomment"># Eintragen in die Datenbank<br /></span><span class="syntaxdefault">?><br /></span></span>


    Hmm.. gut! Angenommen ich komme über einige Umwege an den Datenbankeintrag, nehmen wir an der Benutzer wählt als Passwort geheim, ich sehe den String: e8636ea013e682faf61f56ce1cb1ab5c
    Meine Regenbogentabelle hat ungefähr 10 Minuten gesucht, und schon sehe ich: Das Passwort lautet geheim.. Aww.. schade aber auch was?


    Warum sah die Verschlüsselung nicht so aus:


    PHP
    <span class="syntaxhtml"><br /><span class="syntaxdefault"><?php<br />  $erkennungsmerkmal </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> </span><span class="syntaxstring">"IcH 4 biN EiNe z3ich3nk3TTe, weLchE 7 keInEn SinN erGibT... toTe kazze!"</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">  $passwort_verschluesselt </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> sha1</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">strrev</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">md5</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$benutzername</span><span class="syntaxkeyword">)</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">.</span><span class="syntaxdefault"> md5</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$erkennungsmerkmal</span><span class="syntaxkeyword">)</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">.</span><span class="syntaxdefault"> md5</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$passwort</span><span class="syntaxkeyword">)));</span><span class="syntaxdefault"> <br />?></span>  <br /></span>


    Als Ergebnis erhalten wir: d11b24028c2b3dfcc21bfcf3df4655a7ef09c4a2 Hier fehlt mir die passende Tabelle, aber ich bezweifel stark das dieser String überhaupt eingetragen wäre, schließlich wurde folgendes gehasht:


    Code
    c5ba1bc1ec65f16faf286e310ae6368e49b7a31e11c23edfad6d791c05f05dc4f283358bc9ea967d3b77fa7241b59af6


    Beim besten Willen, das steht in keiner Regenbogentabelle! Und selbst wenn, wie entschlüssel ich das jetzt? Woher soll ich jetzt wissen das das 3 md5 Hashwerte am Stück sind, aber auch noch umgekehrt? Also lasse ich es gut sein..


    Dadurch das wir $erkennungsmerkmal in unserer Datei haben, können wir den Login genau so auswerten.


  • Das ist schwer zu erklären, und auch schwer einzuschätzen.


    md5 ist keine Verschlüsselung, sondern eine Funktion die einen Hash Wert erstellt. Genaueres kannst du hier nachlesen.


    P.S.: md5 hat keinen Algorythmus, das ist sein Geheimnis :D

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!