 |
| Hinweise |
Willkommen im TP-Hilfe-Forum!Dies ist ein Forum zu den Themen Photoshop, Dreamweaver, Flash, Selbständigkeit und mehr, in dem Du Hilfe, Anleitung oder eine Lösung zu Deinen Problemen erhältst. Aktuell bist Du in unseren Foren als Gast mit reinen Leserechten unterwegs. Wenn Du Dich registrierst, kannst Du eigene Themen verfassen, Deine Frage stellen und privat mit anderen TPlern kommunizieren. Weitere Foren werden zugänglich, und Du wirst – falls gewünscht – per Mail über neue Beiträge informiert. Die Registrierung ist schnell und kostenlos. Sollten bei der Registrierung Fragen auftauchen, reicht ein Klick in unsere Hilfe - Häufig gestellte Fragen oder eine kurze Mitteilung an das Support-Team. Viel Spaß bei Traum-Projekt.com |
15.08.2002, 12:23
|
#1
|
|
TP-Greis
Registriert seit: Mar 2001
Ort: Berlin, Germany
|
[PHP] Passwortgenerator frisst Zeichen?
Hi,
ich hab eine kleine Funktion gebastelt, die ein zufälliges Passworte erstellt mit einer angegebenen Länge:
PHP-Code:
function generatepw($lenght)
{
$pass = "";
$index = 1;
while ($index <= $lenght)
{
mt_srand((double)microtime()*1000000);
$random = mt_rand(0,61);
$pass .= substr("abcdefghijklmnopqrstuvxyzABCDEFGHIJKLMNOPQRSTUVXYZ0123456789", $random, 1);
$index++;
}
return $pass;
}
Wenn ich nun zum Beispiel die Länge "8" angebe, erstellt er mir ein Passwort mit 8 Zeichen. Allerdings nicht immer, manchmal sind es nur 7 oder 6.
Kann man ganz einfach überprüfen:
PHP-Code:
$zahl=0;
while ($zahl <= 20)
{
echo generatepw(8); echo "<br>";
$zahl++;
}
Einige Passwört haben fehlende Zeichen ... hat jemand eine Ahnung, wieso? Danke!
__________________
“My software never has bugs. It just develops random features ...”
» DevShack - die Website des freien Webentwicklers Boris
|
|
|
15.08.2002, 12:30
|
#2
|
|
TP-Supporter
Registriert seit: Mar 2001
Ort: Göttingen
|
Probier mal, das Leerzeichen vor abcdef... zu löschen
__________________
Wenn die Sonne der Kultur niedrig steht, werfen selbst Zwerge einen Schatten. (Karl Kraus)
|
|
|
15.08.2002, 12:34
|
#3
|
|
TP-Greis
Registriert seit: Mar 2001
Ort: Berlin, Germany
|
Äh, da ist normalerweise keins - das hat das Forum hier gemacht 
__________________
“My software never has bugs. It just develops random features ...”
» DevShack - die Website des freien Webentwicklers Boris
|
|
|
15.08.2002, 12:44
|
#4
|
|
TP-Supporter
Registriert seit: Mar 2001
Ort: Göttingen
|
Ok
dann mach mal
PHP-Code:
$random = mt_rand(0,60);
sollte funktionieren
__________________
Wenn die Sonne der Kultur niedrig steht, werfen selbst Zwerge einen Schatten. (Karl Kraus)
|
|
|
15.08.2002, 12:52
|
#5
|
|
TP-Supporter
Registriert seit: Mar 2001
Ort: Göttingen
|
Oder Du lernst nochmal das Alphabet
In der Zeichenkette fehlen sowohl "w" als auch "W", dann müßte es auch wieder mt_rand(0,61) heißen
__________________
Wenn die Sonne der Kultur niedrig steht, werfen selbst Zwerge einen Schatten. (Karl Kraus)
|
|
|
15.08.2002, 13:07
|
#6
|
|
TP-Greis
Registriert seit: Mar 2001
Ort: Berlin, Germany
|
Aaah, das wars ... danke *roll* 
__________________
“My software never has bugs. It just develops random features ...”
» DevShack - die Website des freien Webentwicklers Boris
|
|
|
15.08.2002, 13:57
|
#7
|
|
TP-Veteran
Registriert seit: Jan 2002
|
...oder du verwendest das hier. Bewirkt genau das gleiche, indem es den aktuellen Timestamp in Millisekunden (microtime()) per MD5 verschlüsselt:
PHP-Code:
function generateRandomString($length)
{
return substr(md5(microtime()),0, $length);
}
|
|
|
15.08.2002, 14:07
|
#8
|
|
TP-Greis
Registriert seit: Jun 2001
Ort: Bonn-Altstadt
|
@seb
Habe ich bislang auch immer so gemacht, aber Stuck Mojo hat mich darauf gebracht, dass selbiges nicht der eleganteste Weg ist: Denn Du hast so keine Kontrolle über die verwendeten Zeichen und nicht alle derselbigen sind in Passwörtern wünschenswert (z.B. "I" und "l", Verwechselungsgefahr). 
__________________
Give up yourself into the moment — The time is now.
|
|
|
15.08.2002, 14:23
|
#9
|
|
TP-Greis
Registriert seit: Mar 2001
Ort: Berlin, Germany
|
Aus diesem Grund benutze ich meine Variante - eine 1 und ein l sehen sich auch recht ähnlich ... mit dieser Version kann man Zeichen auch bewusst "weglassen" ...
Man könnte allerdins auch die md5-Variante nehmen, mit einer RegExp alle I, l und 1 entfernen und dann auf acht Zeichen kürzen 
__________________
“My software never has bugs. It just develops random features ...”
» DevShack - die Website des freien Webentwicklers Boris
|
|
|
15.08.2002, 14:30
|
#10
|
|
TP-Greis
Registriert seit: Jun 2001
Ort: Bonn-Altstadt
|
Zitat:
Original geschrieben von Adagio
Man könnte allerdins auch die md5-Variante nehmen, mit einer RegExp alle I, l und 1 entfernen und dann auf acht Zeichen kürzen
|
Das kann man in der Tat. Man kann sich aber auch ein Loch ins Knie bohren und heiße Milch draus trinken. 
__________________
Give up yourself into the moment — The time is now.
|
|
|
15.08.2002, 14:33
|
#11
|
|
TP-Veteran
Registriert seit: Jan 2002
|
oder den String in Großbuchstaben zurückgeben. Der durschnittliche Computerbenutzer wird doch dazu fähig sein, eine 1 von einem I oder auch einem l zu unterscheiden...falls sein Passwort nicht funktioniert, wird ers merken und feststellen, worans liegt.
Aber falls man unbedingt Kontrolle über die verwendeten Zeichen haben möchte, habt ihr mit eurem Einwand natürlich vollkommen recht.
edit:
Noch ein Nachteil von meiner Lösung könnte sein, dass sie eventuell nicht dafür geeignet ist, mehrere Zufallsstrings kurz nacheinander zu erzeugen.
Sicher wird man sowas vielleicht nie brauchen, aber wenns doch mal vorkommt und der betreffende Computer entsprechend schnell ist , würde er gleiche Passwörter ausgeben, da microtime() ja keine Zufallszahl ist, und die Zeitabstände zwischen den Befehlsausführungen vielleicht kürzer als eine tausendstel Sekunde sein könnten...rein theoretisch...
Geändert von seb (15.08.2002 um 14:39 Uhr).
|
|
|
15.09.2002, 01:09
|
#12
|
|
TP-Moderator
Registriert seit: Feb 2001
Ort: Helmstedt/Wolfsburg
|
Zitat:
Original geschrieben von seb
oder den String in Großbuchstaben zurückgeben. Der durschnittliche Computerbenutzer wird doch dazu fähig sein, eine 1 von einem I oder auch einem l zu unterscheiden...falls sein Passwort nicht funktioniert, wird ers merken und feststellen, worans liegt.
Aber falls man unbedingt Kontrolle über die verwendeten Zeichen haben möchte, habt ihr mit eurem Einwand natürlich vollkommen recht.
|
Nur mal als Info, da ich wiedermal an sowas dran bin
Arial: I,1,l,O,0
Times New Roman: I,1,l,O,0
Courier: I,1,l,O,0
Cenury: I,1,l,O,0
...manches sieht sich doch sehr ähnlich... und ich kann aus Erfahrung sagen, dass es nicht so ist, dass der jenige es merkt, sondern eher eine Email schreibt, als an seinem Passwort rumzuprobieren.
Grussi Jan
|
|
|
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
|
| Themen-Optionen |
Thema durchsuchen |
|
|
|
| Thema bewerten |
|
|
Forumregeln
|
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
Alle Zeitangaben in WEZ +2. Es ist jetzt 21:49 Uhr.
|
 |