tutorials.de Buch-Aktion 05/2012
Seite 1 von 2 12 LetzteLetzte
ERLEDIGT
NEIN
ANTWORTEN
15
ZUGRIFFE
683
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    TerraX10 TerraX10 ist offline Mitglied Silber
    Registriert seit
    Sep 2011
    Beiträge
    63
    Hi @ all,

    und mal wieder stell ich ne kleine frage in die runde.

    Gibts ne möglichkeit in ein passwort script ne funktion reinzubauen damit sich das neue und das alte passwort z.b um 5 zeichen unterscheiden müssen****
    Hab irgendwie nirgends was brauchbares gefunden... Aber irgendwie geht das doch bestimmt oder****?

    Mfg
     

  2. #2
    Avatar von tombe
    tombe tombe ist offline Mitglied Diamant
    tutorials.de Premium-User
    Registriert seit
    Sep 2004
    Ort
    Möglingen (BaWü)
    Beiträge
    3.109
    Evntuell kannst du die Passwörter in ein Array aufteilen und diese dann mit Hilfe von array_diff vergleichen.

    Hier noch ein Beispiel dazu:

    PHP-Code:
    <?php
    $alt 
    "passwort";
    $neu "password";

    $arr_alt str_split($alt);

    $arr_neu str_split($neu);

    $anzahl count(array_diff_assoc($arr_neu$arr_alt));

    if (
    $anzahl 5) {
        echo 
    "Die Passw&ouml;rter sind sich zu &auml;hnlich!";
    } else {
        echo 
    "Der Unterschied ist gro&szlig; genug!";
    }

    ?>
    Geändert von tombe (15.12.11 um 09:49 Uhr)
     
    Sollte ein Tipp von mir geholfen haben, habe ich nichts gegen eine entsprechende Bewertung oder ein Danke und wenn ein Problem gelöst ist, dann den Beitrag bitte auch als erledigt markieren.

    Was ich gar nicht leiden kann sind User die es nicht für nötig halten auf Antworten zu reagieren, die Themen nicht als erledigt markieren und/oder die sich nicht für Hilfe bedanken.

  3. #3
    Avatar von chmee
    chmee chmee ist offline mod | media
    tutorials.de Moderator
    Registriert seit
    Apr 2004
    Ort
    Berlin bei Potsdam
    Beiträge
    7.630
    Blog-Einträge
    4
    Gehen tut es, die Frage ist, wie soll es sich unterscheiden.. Müssen es grundsätzlich 5 andere Zeichen sein oder dürfen sie nur nicht an gleicher Stelle stehen?

    abcd135
    efgh246 - ist ok?
    5d3cb1a - ist nicht ok?

    Man könnte es auch mit einem RegexPattern machen. Man packt das alte Passwort als Zeichenvorrat hinein (vorsicht bei Sonderzeichen) und als Ergebnis bekommt man ein Array der passenden Übereinstimmungen. Die Länge des Array im Vergleich zur Länge des Ausgangspasswortes sagt uns, ob die Bedingung erfüllt ist.
    PHP-Code:
    <?php
    $passwortAlt 
    "abcd135";
    $passwortNeu "d5cb3a1678";
     
    $regex "#[".$passwortAlt."]{1}#"
    preg_match_all ($regex$passwortNeu$output);

    echo 
    "Länge des neuen Passworts :".len($passwortNeu);
    echo 
    "Übereinstimmung :".count($output[0]);
    echo 
    "<br/>";
    var_dump($output[0]);
    ?>
    mfg chmee
    Geändert von chmee (15.12.11 um 10:02 Uhr)
     
    Mein Blog - VideoFAQ - FotoFAQ - bei Flickr - DSLR Kleinanzeigen
    Benutzt den DANKE-Knopf oder bewertet den Beitrag

    "GEHT NICHT" HILFT NICHT, TESTET EURE CODES ONLINE UND GEBT KLARE INFOS!
    -> Regexp <- -> php <- -> Javascript <-

  4. #4
    TerraX10 TerraX10 ist offline Mitglied Silber
    Registriert seit
    Sep 2011
    Beiträge
    63
    Am besten wäre es wenn sie sich grundsätzlich vom alten passwort unterscheiden.
    genau so wie dus grad beschrieben hast ja

    mfg terra
     

  5. #5
    TerraX10 TerraX10 ist offline Mitglied Silber
    Registriert seit
    Sep 2011
    Beiträge
    63
    @tombe das versuch ich gleich mal danke
     

  6. #6
    Avatar von tombe
    tombe tombe ist offline Mitglied Diamant
    tutorials.de Premium-User
    Registriert seit
    Sep 2004
    Ort
    Möglingen (BaWü)
    Beiträge
    3.109
    Oder ein Beispiel mit der levenshtein-Funktion

    PHP-Code:
    <?php
    $alt 
    "passwort";
    $neu "wortpass";

    $anzahl levenshtein($alt$neu);

    if (
    $anzahl 5) {
        echo 
    "Die Passw&ouml;rter sind sich zu &auml;hnlich!";
    } else {
        echo 
    "Der Unterschied ist gro&szlig; genug!";
    }
    ?>
     
    Sollte ein Tipp von mir geholfen haben, habe ich nichts gegen eine entsprechende Bewertung oder ein Danke und wenn ein Problem gelöst ist, dann den Beitrag bitte auch als erledigt markieren.

    Was ich gar nicht leiden kann sind User die es nicht für nötig halten auf Antworten zu reagieren, die Themen nicht als erledigt markieren und/oder die sich nicht für Hilfe bedanken.

  7. #7
    Avatar von Anna Bolika
    Anna Bolika Anna Bolika ist offline Mitglied Silber
    Registriert seit
    Jan 2011
    Beiträge
    75
    Also es tut mir leid, aber deine Frage - finde ich - deutet auf einen Denkfehler hin. Ich finde, du wärst schlecht beraten, wenn ich dir nun eine Lösung dafür geben würde.

    Wenn du Passwörter auf Unterschiedlichkeit prüfen möchtest, musst du sie irgendwo im Klartext abgespeichert haben. Aber dazu kann mir dir doch nicht ernsthaft raten.

    Statt der Passworte solltest du generell nur einem Hash-Wert in der Datenbank speichern. Dazu verwendest du Funktionen wie md5() oder sha1(). Von den Rückgabewerten dieser Funktionen ist das Originalpasswort nicht mehr rekonstruierbar.

    Das bedeutet: Du speicherst z. B. den md5() deines Passwortes in der Datenbank. Wenn jemand sich nun einloggt, behandelst du die Eingabe ebenfalls wieder mit md5() und vergleichst dann nicht die Passwörter im Klartext, sondern die md5-Hashes.

    Diese Vorgehensweise erlaubt dir NICHT, dass du beim Wechseln eines Passwortes die Unterschiedlichkeit zum alten Passwort vergleichen kannst. Aber sie ist um einiges sicherer.

    Solltest du dich dafür entscheiden, googelst du am besten gleich noch nach dem Wort "Salt" in Verbindung mit Hash und Passwort, um die Sache perfekt zu machen.

    Alles was du dann prüfen kannst ist, dass altes und neues PW unterschiedlich sind. Angesichts der erhöhten Sicherheit halte ich dies jedoch für die bessere Lösung. Denn mal ganz im ernst: Wenn ich mich bei dir anmelde, was geht dich als Admin mein Passwort an. Mit der von mir beschriebenen Lösung kennt auch der Admin die Passworte nicht und das ist auch gut so.

    Hoffe, du konntest mir folgen
     

  8. #8
    TerraX10 TerraX10 ist offline Mitglied Silber
    Registriert seit
    Sep 2011
    Beiträge
    63
    da hatte ich wirklich nen denk fehler drinn... xD
    das wurd mir grad auch irgendwie kla
    Ich wollte grade fragen ob ich die nicht eigentlich erst entschlüsseln müsste wenn ich das so lösen möchte...

    ja ich konnte dir folgen das ist mir grad auch bewusst geworden

    Danke
     

  9. #9
    TerraX10 TerraX10 ist offline Mitglied Silber
    Registriert seit
    Sep 2011
    Beiträge
    63
    aber da ich die passwörter dann eh nur auf gleichheit prüfen kann würde es dann nicht auch einfach so reichen?...

    <?php if ($old_pwd != $new_pwd1 && $new_pwd2){

    }?>

    Mfg
     

  10. #10
    Avatar von chmee
    chmee chmee ist offline mod | media
    tutorials.de Moderator
    Registriert seit
    Apr 2004
    Ort
    Berlin bei Potsdam
    Beiträge
    7.630
    Blog-Einträge
    4
    @Anna Bolika Dein Ansatz ist absolut richtig. Gleichzeitig kennen wir aber von quasi allen Seiten, dass beim Ersetzen des Passwortes durch ein neues auch das alte angegeben werden muß. Somit könnte man ja sogar - nach der Überprüfung, ob das alte richtig ist - in JS oder php eben jene vom Fragenden gewollte Überprüfung machen. Letztlich wollen wir primär die Frage beantworten, sekundär auf Schwachstellen hinweisen, was Du ja gemacht hast. md5/sha1/salt bewahrt uns nämlich nicht vor schlechten Passwörtern, sondern nur vor der Rekonstruktion durch Fremde.

    mfg chmee
     
    Mein Blog - VideoFAQ - FotoFAQ - bei Flickr - DSLR Kleinanzeigen
    Benutzt den DANKE-Knopf oder bewertet den Beitrag

    "GEHT NICHT" HILFT NICHT, TESTET EURE CODES ONLINE UND GEBT KLARE INFOS!
    -> Regexp <- -> php <- -> Javascript <-

  11. #11
    Avatar von Anna Bolika
    Anna Bolika Anna Bolika ist offline Mitglied Silber
    Registriert seit
    Jan 2011
    Beiträge
    75
    Ok, ihr beiden. Wenn ihr natürlich den Benutzer auch nochmal das alte Passwort mit eingeben lasst, dann habt ihr es natürlich dann im Klartext und könnt auch die gewünschte Prüfung durchführen.

    Auf meinen Seiten verzichte ich darauf. Bei mir ändert man einfach sein Passwort und gut ists.

    Abgesehen davon würde ich es fast als Gängelung empfinden, wenn ich ein völlig abweichendes Passwort mit mindestens 5 neuen Zeichen vergeben müsste. Soviel Sicherheit gibts ja nicht mal auf Seiten wie Paypal. Ich finde, man sollte die Kirche auch mal im Dorf lassen
     

  12. #12
    Avatar von chmee
    chmee chmee ist offline mod | media
    tutorials.de Moderator
    Registriert seit
    Apr 2004
    Ort
    Berlin bei Potsdam
    Beiträge
    7.630
    Blog-Einträge
    4
    Ich finde den Ansatz auch unzureichend, weil er falsche Sicherheit ausstrahlt und - wie Du sagtest - die Neuauwahl des PW unnötig erschwert. anna1974 ist genauso unsicher wie robert23. Besser hielte ich einen Scriptansatz, der beim Passworterstellen die Sicherheit anzeigt. Siehe zB Hier. Thread dazu Hier.

    mfg chmee
    Geändert von chmee (15.12.11 um 11:08 Uhr)
     
    Mein Blog - VideoFAQ - FotoFAQ - bei Flickr - DSLR Kleinanzeigen
    Benutzt den DANKE-Knopf oder bewertet den Beitrag

    "GEHT NICHT" HILFT NICHT, TESTET EURE CODES ONLINE UND GEBT KLARE INFOS!
    -> Regexp <- -> php <- -> Javascript <-

  13. #13
    TerraX10 TerraX10 ist offline Mitglied Silber
    Registriert seit
    Sep 2011
    Beiträge
    63
    Ich vergleich die beiden hashes nun einfach mit einander und überprüfe nur ob die pw gleich sind...

    Danke trotzdem für den Zeitaufwand und die mühe

    Mfg Terra
     

  14. #14
    Avatar von chmee
    chmee chmee ist offline mod | media
    tutorials.de Moderator
    Registriert seit
    Apr 2004
    Ort
    Berlin bei Potsdam
    Beiträge
    7.630
    Blog-Einträge
    4
    Der Vergleich der Hashes ist sinnlos.

    md5()
    anna1974 = b244cf4fdd7050013803dd7449ac3aee
    Anna1974 = 2c1d0390a0b347d10454520651d32d84

    Nur ein Zeichenwechsel, egal welcher Form, verändert den Hash komplett. Du hast damit also nur die Aussage, ob ein Passwort geändert wurde - nicht, ob es sicherer geworden ist.

    mfg chmee
     
    Mein Blog - VideoFAQ - FotoFAQ - bei Flickr - DSLR Kleinanzeigen
    Benutzt den DANKE-Knopf oder bewertet den Beitrag

    "GEHT NICHT" HILFT NICHT, TESTET EURE CODES ONLINE UND GEBT KLARE INFOS!
    -> Regexp <- -> php <- -> Javascript <-

  15. #15
    TerraX10 TerraX10 ist offline Mitglied Silber
    Registriert seit
    Sep 2011
    Beiträge
    63
    Ich vergleiche einfach ob die Eingegeben pw gleich sind nicht die hashes sry xD

    und ich wollte die passwörter nicht unbedingt sicherer machen ich wollte einfach nur verhindern das jeder immer das selbe pw benutzt!

    Mfg Terra
     

Ähnliche Themen

  1. Logo Erstellung
    Von Evgenij im Forum Stellenangebote (unentgeltlich)
    Antworten: 2
    Letzter Beitrag: 18.07.06, 12:36
  2. Erstellung abbrechen?!
    Von Nospherates im Forum VisualStudio & MFC
    Antworten: 0
    Letzter Beitrag: 26.06.06, 13:46
  3. Programm für CD-rom Erstellung?
    Von ime im Forum Flash Plattform
    Antworten: 5
    Letzter Beitrag: 02.07.05, 14:44
  4. PDF Erstellung mit PHP
    Von preko im Forum PHP
    Antworten: 2
    Letzter Beitrag: 18.10.04, 14:37
  5. PDF Erstellung
    Von quidnovi im Forum PHP
    Antworten: 6
    Letzter Beitrag: 09.08.04, 14:20

Stichworte