Auf Fedora 19
Wenn ich es laufen lasse, bekomme ich OK. Ich bin auf Fedora 19.
$ echo 'M1uG*xgRCthKWwjIjWc*010iSthY9buc' | cracklib-check
M1uG*xgRCthKWwjIjWc*010iSthY9buc: OK
Hier ist die Versionsinfo:
$ rpm -qfi /usr/sbin/cracklib-check | grep -E "Version|Release"
Version : 2.8.22
Release : 3.fc19
ANMERKUNG: Ich würde es auch mit einfachen Anführungszeichen anstelle von doppelten Qutos versuchen, da Sie es mit *
's zu tun haben , die auf seltsame Weise auf Sie erweitert werden könnten.
CentOS 5 & 6
Es war in Ordnung, Ihr Beispiel unter CentOS 6 zu testen. Sie haben ein OK erhalten, aber es ist fehlgeschlagen, wie Sie es unter CentOS 5.9 beschrieben haben.
$ echo 'M1uG*xgRCthKWwjIjWc*010iSthY9buc' | cracklib-check
M1uG*xgRCthKWwjIjWc*010iSthY9buc: it is too simplistic/systematic
Versions Information:
$ rpm -qfi /usr/sbin/cracklib-check | grep -E "Version|Release"
Version : 2.8.9
Release : 3.3
Ein Käfer?
Was Sie gestolpert sind, scheint ein Fehler zu sein. Wenn Sie Ihre Zeichenkette nehmen und mehr und mehr in Ihre Zeichenkette einführen, werden cracklib-check
Sie feststellen, dass sie beim 26. Zeichen anfängt zu scheitern:
# 25
$ cracklib-check <<<"M1uG*xgRCthKWwjIjWc*010iS"
M1uG*xgRCthKWwjIjWc*010iS: OK
# 26
$ cracklib-check <<<"M1uG*xgRCthKWwjIjWc*010iSt"
M1uG*xgRCthKWwjIjWc*010iSt: it is too simplistic/systematic
Wenn ich das letzte Zeichen von a ändere, um t
zu sagen, dass v
es weiterhin funktioniert, gehe ich näher darauf ein .
$ cracklib-check <<<"M1uG*xgRCthKWwjIjWc*010iSvhY9b"
M1uG*xgRCthKWwjIjWc*010iSvhY9b: OK
Es scheint also, dass in der Version von cracklib-check
auf dem Teilstring aufgehängt wird Sth
.
Es ist definitiv etwas Seltsames an den Stücken der Schnur, die Sie zur Verfügung gestellt haben. Wenn ich das hintere Endstück nehme und den vorderen Teil weglasse, kann auch dieser Teil versagen.
$ cracklib-check <<<"jIjc*010Sth"
jIjc*010Sth: it is too simplistic/systematic
Dieselbe Saite führt auch unter Fedora 19 und CentOS 6 zu Problemen!
UPDATE # 1
Basierend auf @ waxwings sehr nettem Sleuthing wissen wir jetzt, dass die verwendete Heuristik ausgelöst wurde, wenn> 4 Zeichen zu nahe beieinander lagen. Es wurde ein Patch eingeführt , der diese Heuristik so änderte, dass die Gesamtlänge des betrachteten Passworts berücksichtigt wurde, um diese Fehlalarme zu beseitigen.
Schlussfolgerungen
Basierend auf einigen meiner begrenzten Tests scheint es, dass hier einige seltsame Heuristiken im Spiel sind. Bestimmte Zeichenfolgen, die anscheinend in Ordnung sind, lösen sie aus.
Wenn Sie versuchen, dies zu kodifizieren, würde ich vorschlagen, die Generierung und Auswertung eines Passworts zu verpacken und dann die Schleife zu verlassen, sobald ein Passwort generiert wurde, das beschwichtigt cracklib-check
.
Zumindest würde ich vorschlagen, auf eine neuere Version zu aktualisieren, die die von @maxwing in seiner Antwort erwähnten Korrekturen enthält.
Passwort Gen Alternativen
pwgen
Ich werde auch hinzufügen, dass ich normalerweise pwgen
zum Generieren von Passwörtern verwende. Das könnte Ihnen auch hier weiterhelfen.
$ pwgen -1cny 32
iWu0iPh8aena9raSoh{v6me)eh:eu6Ei
urandom
Sie können auch ein wenig Skriptmagie mit tr
, /dev/urandom
und verwenden fold
, um ein extrem hochwertiges Zufallspasswort zu erhalten.
$ tr -dc '[:graph:]' </dev/urandom | fold -w 32 | head -n 1
;>$7\`Hl$=zn}R.b3h/uf7mY54xp}zSF
Der fold
Befehl kann die Länge steuern. Alternativ können Sie dies auch tun:
$ echo $(tr -dc '[:graph:]' </dev/urandom | head -c 32)
/_U>s[#_eLKAl(mrE@oo%X~/pcg$6-kr
M1uG*xgRCthKWwjIjWc*010iSthY9buc: OK