ERLEDIGT
NEIN
NEIN
ANTWORTEN
15
15
ZUGRIFFE
683
683
EMPFEHLEN
-
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
-
15.12.11 09:43 #2
- 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örter sind sich zu ähnlich!";
} else {
echo "Der Unterschied ist groß 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.
-
15.12.11 09:44 #3
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.
mfg chmeePHP-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]);
?>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 <-
-
Am besten wäre es wenn sie sich grundsätzlich vom alten passwort unterscheiden.
genau so wie dus grad beschrieben hast ja
mfg terra
-
@tombe das versuch ich gleich mal danke
-
15.12.11 09:54 #6
- 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örter sind sich zu ähnlich!";
} else {
echo "Der Unterschied ist groß 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.
-
15.12.11 10:37 #7
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
-
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
-
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
-
15.12.11 10:50 #10
@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 chmeeMein 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.12.11 10:55 #11
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
-
15.12.11 11:02 #12
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 chmeeGeä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 <-
-
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
-
15.12.11 11:14 #14
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 chmeeMein 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 <-
-
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
-
Logo Erstellung
Von Evgenij im Forum Stellenangebote (unentgeltlich)Antworten: 2Letzter Beitrag: 18.07.06, 12:36 -
Erstellung abbrechen?!
Von Nospherates im Forum VisualStudio & MFCAntworten: 0Letzter Beitrag: 26.06.06, 13:46 -
Programm für CD-rom Erstellung?
Von ime im Forum Flash PlattformAntworten: 5Letzter Beitrag: 02.07.05, 14:44 -
PDF Erstellung mit PHP
Von preko im Forum PHPAntworten: 2Letzter Beitrag: 18.10.04, 14:37 -
PDF Erstellung
Von quidnovi im Forum PHPAntworten: 6Letzter Beitrag: 09.08.04, 14:20





Zitieren


Login






[PHP][Snippet] Array zu XML konvertieren