» 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: 52420
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: 52420
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
139
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
381
16.09.2013, 17:08
98er civic
 Random File Generator
Mit diesem Generator kann man sich eine gewünschte Anzahl von Dateien mit zufälligem Inhalt generieren...
[Allgemein]von mgutt
2
397
17.11.2017, 18:17
mgutt
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
447
05.02.2009, 18:34
ToxiT
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
534
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
342
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
CRX Frontaufprall-Sicherheit verbessern
Moin. Ich möchte hier mal eine Diskussion zum Thema "wie könnte man einen Frontaufprall abmildern" starten. Mehrere Crashvideos und erschreckende Bilder haben mir gezeigt, dass Crx was einen Frontaufprall betrifft sehr "weich" und...
von mbboy
3
236
23.04.2014, 11:02
Maou
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
789
05.08.2008, 14:24
gonzo
Sachbearbeiter im Bereich IT-Sicherheit im ZFD
Beim Zollkriminalamt Köln - Dienstsitz Köln - einer Mittelbehörde im Geschäftsbereich des Bundesministeriums der Finanzen, ist zum nächstmöglichen Zeitpunkt in der IT-Gruppe ein nach Entgeltgruppe 11 TVöD bewerteter Arbeitsplatz (IV 4.126) mit...
[Jobs & Stellenangebote]von kimjob
0
329
10.10.2014, 14:56
kimjob
© 2004 - 2024 www.programmierer-forum.de | Communities | Impressum |