» Passwort Generator mit hoher Sicherheit

SUB-ccTLDs bzw. 2-Punkt-Domainendungen ListeNeuen Thread eröffnenNeue Antwort erstellenIP des Besuchers ermitteln REMOTE_ADDR, HTTP_X_FORWARDED_FOR
AutorNachricht
Administrator 

Name: Marc
Geschlecht:
Anmeldedatum: 28.08.2004
Beiträge: 52431
Wohnort: Lohmar


Meine eBay-Auktionen:
08.02.2008, 05:46
zitieren

Ich habe mir einen Passwortgenerator gebaut. Der Generator baut Passwörter mit höchstmöglicher Sicherheit, da er von jeder Zeichengruppe (Kleinbuchstaben, Großbuchstaben, Zahlen und Sonderzeichen) mindestens X Zeichen erwartet.

Die Länge des Passwortes kann dabei zwischen 4 und 40 Zeichen liegen. 4 sind Minimum, da ich zwingend ein Zeichen pro Gruppe voraussetze. Bei mehr als 40 Zeichen braucht die Funktion unter Umständen zu lange.

Die Zeichengruppen können nach Belieben bearbeitet werden oder ganz leer bleiben. Die Variable sollte dann aber zumindest stehen bleiben. Also z.B.:
$spec = '';

Auch wird kein Zeichen mehr als 2 mal geduldet, was die Passwortschwierigkeit noch weiter erhöht.

Diese Funktion habe ich vorrangig dazu entwickelt Passwörter zu generieren, die kaum noch mit Brute-Force zu knacken sind. Alles ab 12 Zeichen dürfte demnach einige Jahre brauchen bis es geknackt werden könnte.

Hier das PHP-Script:
<?php

function rand_pw($min=4, $max=40, $pwlen=0)
{
// settings
$low = 'abcdefghijklmnopqrstuvwxyz';
$up = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
$no = '0123456789';
$spec = '/-_#*+!§()=:.@äöüÄÖÜß';
// default vars
$all = $low . $up . $no . $spec;
$len = strlen($all);
$pw = '';
$new = false;
if ( PHP_VERSION < 4.2 )
{
mt_srand(intval((doubleval(microtime()) * 1000003)));
}
if ( !$pwlen )
{
// 4 is the minimum because of the number of char groups
// 40 is the maximum because of the performance
$min = $min < 4 ? 4 : ($min > 40 ? 40 : $min);
$max = $max < 4 ? 4 : ($max > 40 ? 40 : $max);
// min may not below max
$min = $min > $max ? $max : $min;
// set password length
$pwlen = mt_rand($min, $max);
}
else
{
$pwlen = $pwlen < 4 ? 4 : ($pwlen > 40 ? 40 : $pwlen);
}
// create password
for ($i = 1; $i <= $pwlen; $i++)
{
$pw .= $all{mt_rand(0, $len)};
}
// check for lowercase
if ( $low && preg_match('/^[^' . $low . ']+$/', $pw) )
{
$new = true;
}
// check for uppercase
else if ( $up && preg_match('/^[^' . $up . ']+$/', $pw) )
{
$new = true;
}
// check for numbers
else if ( $no && preg_match('/^[^' . $no . ']+$/', $pw) )
{
$new = true;
}
// check for special chars
else if ( $spec && preg_match('/^[^' . preg_quote($spec, '/') . ']+$/', $pw) )
{
$new = true;
}
// count char group appearance
else
{
$ilow = 0;
$iup = 0;
$ino = 0;
$ispec = 0;
$chars = count_chars($pw);
foreach ( $chars as $char => $count )
{
if ( $low && preg_match('/^[' . $low . ']+$/', chr($char)) )
{
if ( $count > 2 )
{
$new = true;
break;
}
$ilow = $ilow + $count;
}
else if ( $up && preg_match('/^[' . $up . ']+$/', chr($char)) )
{
if ( $count > 2 )
{
$new = true;
break;
}
$iup = $iup + $count;
}
else if ( $no && preg_match('/^[' . $no . ']+$/', chr($char)) )
{
if ( $count > 2 )
{
$new = true;
break;
}
$ino = $ino + $count;
}
else if ( $spec && preg_match('/^[' . preg_quote($spec, '/') . ']+$/', chr($char)) )
{
if ( $count > 2 )
{
$new = true;
break;
}
$ispec = $ispec + $count;
}
}
// check for minimum appearance per group
$app = $pwlen > 4 ? floor($pwlen / 5) : 1;
if ( $ilow < $app || $iup < $app || $ino < $app || $ispec < $app )
{
$new = true;
}
}
// obtain new password
if ( $new )
{
$pw = rand_pw($min, $max, $pwlen);
}
return $pw;
}

// Passwort zwischen 4 und 10 Zeichen
echo(rand_pw(4, 10));
echo('<br />');
// Passwort mit fixer Länge von 12 Zeichen
echo(rand_pw(12, 12));
echo('<br />');
// resultiert das gleiche (fixe Länge von 12 Zeichen)
echo(rand_pw(0, 0, 12));
echo('<br />');

?>

Verbesserungsvorschläge sind natürlich willkommen :D


pn email
Beobachter 

Name: Yoda
Fahrzeug: Raketenauto
Anmeldedatum: 20.06.2009
Beiträge: 9
Wohnort: Popelhausen


Meine eBay-Auktionen:
20.06.2009, 08:59
zitieren

so nun ich weiss das rhema liegt auch weit zurück aber bei mir kommt folgende
Fehlermeldung wenn ich die zusatzzeichen weglasse:

Fatal error: Allowed memory size of 33554432 bytes exhausted (tried to allocate 24 bytes) in /usr/export/www/vhosts/funnetwork/hosting/***/***/***/passgen.php on line 66
(manchmal kommt auch ....on line 13)


pn
Administrator 

Name: Marc
Geschlecht:
Anmeldedatum: 28.08.2004
Beiträge: 52431
Wohnort: Lohmar


Meine eBay-Auktionen:
20.06.2009, 18:09
zitieren

Die Funktion ist ziemlich rechenintensiv. Muss ich bei Zeiten wohl mal vereinfachen :hmm:

pn email
Gast 
20.06.2009, 18:09
zitieren

Mach mit!

Wenn Dir die Beiträge zum Thread "Passwort Generator mit hoher Sicherheit" gefallen haben oder Du noch Fragen hast oder Ergänzungen machen möchtest, solltest Du Dich gleich bei uns anmelden:



Registrierte Mitglieder genießen die folgenden Vorteile:
✔ kostenlose Mitgliedschaft
keine Werbung
✔ direkter Austausch mit Gleichgesinnten
✔ neue Fragen stellen oder Diskussionen starten
✔ schnelle Hilfe bei Problemen
✔ Bilder und Videos hochladen
✔ und vieles mehr...


Neuen Thread eröffnenNeue Antwort erstellen
Ähnliche BeiträgeRe:
Letzter Beitrag
Generator ej9
Hallo ich hätte eine Frage zu meinen ej9 gibt es eine größere lichtmaschiene als die 75A habe den 14z1...
von bolle1973
0
151
25.08.2021, 19:13
bolle1973
Generator Hilfe
Habe mal eine Frage, und zwar macht mein Generator Geräusche. Soll ich einen neuen kaufen oder den alten überholen lassen? Und gibt es verschiedene Generatoren was den Ladestrom angeht? Auf meinem schild ist nichts mehr...
von renep92
13
408
16.09.2013, 17:08
98er civic
Stellschraube für Generator/Lima im EJ9?
Hallo, da ich gerade nicht die Möglichkeit habe selbst nachzusehen wollte ich mal fragen, ob es eine Stellschraube bei der Lima vom EJ9 gibt, mit der ich die Spannung einstellen kann? Da ich 2 Batterien über ein Ladetrennrelais (d.h. Dioden) habe,...
von Jiss
13
484
05.02.2009, 18:34
ToxiT
 Random File Generator
Mit diesem Generator kann man sich eine gewünschte Anzahl von Dateien mit zufälligem Inhalt generieren...
[Allgemein]von mgutt
2
444
17.11.2017, 18:17
mgutt
Grafik-Text-Generator - Beliebige Worte und Sätze in einem Bild ausgeben
Da es als eigenständiges Projekt (mybb.eu) keine Früchte getragen hat, biete ich den Generator nun hier an. Diesmal allerdings etwas umfangreicher mit Schriftarten, Schriftgrößen, usw. Feedback ist ausdrücklich...
von mgutt
8
559
18.01.2015, 19:06
sugercat
Sicherheit im Sol
Hi, hab hier eben ein Vid bei Youtube gesehn in dem es umd die Sicherheit des Del Sol geht. Da wird in der SiR Version gezeigt das er ein [URL=http://www.hondaoldies.de/Korbmacher-Archiv/Technik/tcs.htm]TCS - Traction Control System[/URL] hat . Gab...
von Caliban13
5
378
23.12.2009, 09:56
Wick3d
Sicherheit & Rendte
Hallo zusammen, wir zeigen Ihnen Fakten ( Sicherheit & Rendite ) Sicherheit & Rendite für alle! Fakten: - Deutsche Wertpapierhandelsbank - BaFin registriert, kontrolliert und überwacht (Somit höchstmögliche Sicherheit) - EdW reguliert...
von Brayn
5
417
04.10.2010, 15:12
Brayn
sicherheit bei alten Hondas?
Hi, ich bin ja 19 Jahre alt und bin jetzt 1 Jahr mit meinem ed6 rumgefahren. Will nun nen ed9, aber plötzlich mucken meine Eltern rum.. : "junge was willst du mit soviel ps, du fährst ja schon jetzt wie ne besengte sau...der hat ja nochnichtmal...
von HAGGi05
17
829
05.08.2008, 14:24
gonzo
Wie man mit Sicherheit falsch postet
ich fand das Bild gut, deswegen...
von mgutt
4
1.225
12.05.2005, 19:12
TomekEJ9
Frage zum Thema Sicherheit ....
Ich grüße euch .... Ich wollt mal fragen in wie fern ihr alle Probleme mit Einbrüchen in eure Civics des entsprechenden baujahrs habt und was eure kleinen tricks zur steigerung der sicherheit sind ... weil 2 brüche in 6wochen is nervig ohne ende .......
von Mr.Schwarz
15
648
27.08.2010, 21:00
Mr.Schwarz
© 2004 - 2025 www.programmierer-forum.de | Communities | Impressum |