|
You last visited: Today at 20:44
Advertisement
[PHP] Easy Passwordgenerator
Discussion on [PHP] Easy Passwordgenerator within the Coding Snippets forum part of the Coding Releases category.
01/12/2014, 13:54
|
#1
|
elite*gold: 40
Join Date: Mar 2013
Posts: 1,394
Received Thanks: 778
|
[PHP] Easy Passwordgenerator
Hallo Leute, heute möchte ich euch meine Selbstprogrammierte Klasse vorstellen. Es handelt sich dabei um ein Passwort Generator.
Das benutzen der Klasse ist sehr einfach:
PHP Code:
include 'class.php'; $rd = new Passwordgenerator(); $rd->Length = 10; $rd->Specialcharacters = '#$"/'; $rd->Numbers = '0123456789'; $rd->Letters = 'ABCDEFGHIJKLMQRSTUVWXYZabcdefghijklmnpqrstuvwxyz';
Wie hier gezeigt, könnt ihr die Länge, Sonderzeichen, Zahlen und Buchstaben selbst bestimmen.
Nun gibt es zwei Möglichkeiten ein / oder mehrere Passwörter zu generieren:
Die einfache Variante um ein Passwort auszugeben:
PHP Code:
echo $rd->generate();
Wenn ihr 10 Passwörter ausgeben wollt, einfach die Anzahl als Integer oder String als Argument eintragen:
PHP Code:
echo $rd->generate(10);
Ich hoffe, es gefällt euch. Für Feedback und Kritik würde ich mich freuen.
Class.php:
PHP Code:
class Passwordgenerator { public $Length = '10'; public $Specialcharacters = '§&/'; public $Numbers = '0123456789'; public $Letters = 'ABCDEFGHIJKLMQRSTUVWXYZabcdefghijklmnpqrstuvwxyz'; public function generate($pw_count) { $Chars = $this->Specialcharacters.$this->Numbers$this->Letters; if($pw_count < 2 ) { $pass = array(); $alphaLength = strlen($Chars) - 1; for ($i = 0; $i < $this->Length; $i++) { $n = rand(0, $alphaLength); $pass[] = $Chars[$n]; } return implode($pass); } elseif($pw_count > 1) { $results = ''; for ($x = 0; $x < $pw_count; $x++) { $pass = array(); $alphaLength = strlen($Chars) - 1; for ($i = 0; $i < $this->Length; $i++) { $n = rand(0, $alphaLength); $pass[] = $Chars[$n]; } $results .= implode($pass)."<br>"; } return $results; } } }
Test.php:
PHP Code:
include 'class.php'; $rd = new Passwordgenerator(); $rd->Length = 10; $rd->Specialcharacters = '#$"/'; $rd->Numbers = '0123456789'; $rd->Letters = 'ABCDEFGHIJKLMQRSTUVWXYZabcdefghijklmnpqrstuvwxyz'; ########################################### /* Simple */ ########################################### echo $rd->generate(); ########################################### /* Adwanced */ ########################################### echo $rd->generate(15); /* Generate 15 Passwords */ ###########################################
|
|
|
01/14/2014, 14:36
|
#2
|
elite*gold: 25
Join Date: Sep 2011
Posts: 5,537
Received Thanks: 1,266
|
Hätte man das nicht einfach als einzelne Funktion schreiben können?
---
PHP Code:
$Chars = "$this->Specialcharacters$this->Numbers$this->Letters";
String Verkettung finde ich schöner
PHP Code:
if($this->Length == '')$this->Length = 10;
Würde ich wenn ohne klammern wenigstens unter einander machen.
Noch besser wäre einen Default wert bereits oben zu definieren.
PHP Code:
$results .= implode($pass)."<br>";
Lieber nen Array erstellen, und diesen ausgeben - evtl. will jemand die Passwörter ja nicht ausgeben
|
|
|
01/14/2014, 17:15
|
#3
|
elite*gold: 40
Join Date: Mar 2013
Posts: 1,394
Received Thanks: 778
|
Hey, danke erstmal für dein kleines Feedback b.z deine Korrektur.
Quote:
Originally Posted by Padrio
Hätte man das nicht einfach als einzelne Funktion schreiben können?
|
Ich finde Klassen schöner
Quote:
Originally Posted by Padrio
PHP Code:
$Chars = "$this->Specialcharacters$this->Numbers$this->Letters";
String Verkettung finde ich schöner
|
PHP Code:
$Chars = $this->Specialcharacters && $this->Numbers && $this->Letters;
Hinzugefügt
Quote:
Originally Posted by Padrio
PHP Code:
if($this->Length == '')$this->Length = 10;
Würde ich wenn ohne klammern wenigstens unter einander machen.
Noch besser wäre einen Default wert bereits oben zu definieren.
|
Stimmt, default wäre natürlich am besten
Quote:
Originally Posted by Padrio
PHP Code:
$results .= implode($pass)."<br>";
Lieber nen Array erstellen, und diesen ausgeben - evtl. will jemand die Passwörter ja nicht ausgeben
|
Joaaaaaaaaa, füge ich noch hinzu
|
|
|
01/14/2014, 17:15
|
#4
|
elite*gold: 0
Join Date: Jan 2012
Posts: 759
Received Thanks: 416
|
Quote:
Hätte man das nicht einfach als einzelne Funktion schreiben können?
|
Wenn ich eine Klasse habe, die gerne Passwörter erzeugen möchte, es ihr aber egal ist, wie diese Passwörter erzeugt werden, kann ich der Klasse ein Objekt seines Passwort-Generators übergeben, so dass meine Klasse mit generate() immer irgendein Passwort bekommt.
Wäre das eine Funktion könnte ich den Algorithmus nicht austauschen und ich müsste meiner Klasse alle Parameter die für die Generierung des Passworts nötig sind übergeben, obwohl sich die Klasse ja eigentlich gar nicht dafür interessiert, wie diese aussehen.
Gegenfrage: Was spricht dagegen, das als eine Klasse zu schreiben?
Quote:
$Chars = $this->Specialcharacters && $this->Numbers && $this->Letters;
|
Man kann Zeichenketten mit einem logischen Und konkatenieren? (ernste Frage, das geht in PHP?)
|
|
|
01/14/2014, 17:21
|
#5
|
elite*gold: 40
Join Date: Mar 2013
Posts: 1,394
Received Thanks: 778
|
Hehe, habe es oben schon mit "Punkt" . gemacht ^^ War ein denkfehler von mir
Btw: Bin von der Ladezeit bei 10 Tausend Passwörtern erstaunt. Diese beträgt: 0.228 Sekunden
Nicht so, das man das irgendwie gebrauchen könnte
Außerdem beträgt die Ladezeit bei einem Passwort mir einer Länge von 100.000 Zeichen nur 0.235 Sekunden.
Sehr schwachsinnig da man dies im normalfall nicht macht.
|
|
|
01/18/2014, 05:28
|
#6
|
ベトナム警察
elite*gold: 725
Join Date: Jan 2012
Posts: 16,378
Received Thanks: 3,429
|
Du könntest auch statt in die Variable die einzelne Buchstaben und Zahlen reinzuschreiben, einen array mit einer Funktion namens range() erstellen. Korrigiert mich, wenn ich falsche liege. Ansonsten nette Funktion.
|
|
|
01/18/2014, 18:12
|
#7
|
elite*gold: 0
Join Date: Jan 2014
Posts: 13
Received Thanks: 3
|
Danke sehr.
|
|
|
01/18/2014, 18:15
|
#8
|
elite*gold: 25
Join Date: Sep 2011
Posts: 5,537
Received Thanks: 1,266
|
Quote:
Originally Posted by Lumi
Du könntest auch statt in die Variable die einzelne Buchstaben und Zahlen reinzuschreiben, einen array mit einer Funktion namens range() erstellen. Korrigiert mich, wenn ich falsche liege. Ansonsten nette Funktion.
|
Range kann aber keine Sonderzeichen generieren?
Ansonsten würde ich sie als vor definierten wert nehmen.
|
|
|
01/19/2014, 19:40
|
#9
|
ベトナム警察
elite*gold: 725
Join Date: Jan 2012
Posts: 16,378
Received Thanks: 3,429
|
Quote:
Originally Posted by Padrio
Range kann aber keine Sonderzeichen generieren?
Ansonsten würde ich sie als vor definierten wert nehmen.
|
Nein, von Sonderzeichen war hier auch nie die Rede.
|
|
|
01/21/2014, 20:22
|
#10
|
elite*gold: 18
Join Date: Sep 2009
Posts: 20,177
Received Thanks: 14,471
|
Ich finde es ein klein wenig umständlich von dir gelöst, kann man viel einfacher machen.
PHP Code:
public function GetRandomString( $length = 32 ) { $retval = ''; $string = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"; mt_srand( (double)microtime() * 1000000 ); for( $i = 1; $i <= $length; $i++ ) $retval .= substr( $string, mt_rand( 0, strlen( $string ) -1 ), 1 ); return $retval; }
|
|
|
01/22/2014, 14:14
|
#11
|
elite*gold: 40
Join Date: Mar 2013
Posts: 1,394
Received Thanks: 778
|
Quote:
Originally Posted by Sedrika
Ich finde es ein klein wenig umständlich von dir gelöst, kann man viel einfacher machen.
PHP Code:
public function GetRandomString( $length = 32 ) { $retval = ''; $string = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"; mt_srand( (double)microtime() * 1000000 ); for( $i = 1; $i <= $length; $i++ ) $retval .= substr( $string, mt_rand( 0, strlen( $string ) -1 ), 1 ); return $retval; }
|
Mit dieser funktion kannst du höchstens 1 Passwort auf einmal generieren.
Ich habe es Benutzerfreundlich in eine Klasse geschrieben, jedoch danke für dein Feedback
|
|
|
01/22/2014, 14:46
|
#12
|
elite*gold: 25
Join Date: Sep 2011
Posts: 5,537
Received Thanks: 1,266
|
Quote:
Originally Posted by C0RE'
Mit dieser funktion kannst du höchstens 1 Passwort auf einmal generieren.
Ich habe es Benutzerfreundlich in eine Klasse geschrieben, jedoch danke für dein Feedback
|
Führ die Funktion in einer For() schleife aus und du hast mehrere...
|
|
|
01/22/2014, 15:10
|
#13
|
elite*gold: 0
Join Date: Jan 2010
Posts: 13,150
Received Thanks: 3,207
|
*hust*
*hust*
Eine Schleife drum rum und du hast das gleiche Ergebnis und es ist einfacher in ein controller zu packen.
|
|
|
01/23/2014, 19:52
|
#14
|
elite*gold: 18
Join Date: Sep 2009
Posts: 20,177
Received Thanks: 14,471
|
Quote:
Originally Posted by C0RE'
Mit dieser funktion kannst du höchstens 1 Passwort auf einmal generieren.
Ich habe es Benutzerfreundlich in eine Klasse geschrieben, jedoch danke für dein Feedback
|
Dann erweitert man diese kurz halt.
PHP Code:
public function GetRandomString( $length = 32, $count = 1 ) { $retval = null; $string = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"; for( $j = 0; $j < $count; $j++ ) { mt_srand( (double)microtime() * 1000000 ); for( $i = 1; $i <= $length; $i++ ) { $retval[] = substr( $string, mt_rand( 0, strlen( $string ) -1 ), 1 ); } } return $retval; }
Damit hast du das ganze schön in einem Array.
|
|
|
Similar Threads
|
Pumio Mini D3D v2 easy hack (chams,no recoil and more easy hax) only for pro cqc
07/02/2011 - WarRock Hacks, Bots, Cheats & Exploits - 2 Replies
Download: Multiupload.com - upload your files to multiple file hosting sites!
VirusTotal: https://www.virustotal.com/file-scan/report.html?i d=67df2e20df80a2dc9f794783d9be488c9d7511c89dc81258 16b6dcd5b6dd85ef-1309520821
Screen: ImageShack® - Online Photo and Video Hosting
|
Pumio PMini D3D v2 easy hack (chams,no recoil and more easy hax) only for pro cqc
07/01/2011 - WarRock Hacks, Bots, Cheats & Exploits - 3 Replies
DL: Multiupload.com - upload your files to multiple file hosting sites!
VT: https://www.virustotal.com/file-scan/report.html?i d=67df2e20df80a2dc9f794783d9be488c9d7511c89dc81258 16b6dcd5b6dd85ef-1309520821
Screen: ImageShack® - Online Photo and Video Hosting
|
All times are GMT +2. The time now is 20:44.
|
|