
Ich frage mich, wie ich unter Linux sichere Passwörter erstellen kann (sowohl für normale Benutzer als auch für Administratoren) und ob es dafür spezielle Programme gibt.
Antwort1
pwgenist eines von vielen Programmen zur Generierung von Passwörtern
Antwort2
Persönlich bevorzuge ich die Verwendung eines Passwortgenerators, da die generierten Passwörter sehr schwer zu merken sind. Eine portable Lösung ist jedoch die Verwendung von/Entwickler/urandom
Erstellen Sie zufällige Passwörter, die keine Sonderzeichen enthalten und 10 Zeichen lang sind:
$ cat /dev/urandom | tr -dc 'a-zA-Z0-9' | head -c 10`
dyxJRKldvp
Dies funktioniert, indem Bytes aus /dev/urandom abgerufen werden, diejenigen gelöscht werden, die nicht dem im tr
Befehl angegebenen Muster entsprechen, und es mit auf 10 Zeichen begrenzt wird head
.
Erstellen Sie zufällige Passwörter, die Sonderzeichen enthalten und 10 Zeichen lang sind:
$ cat /dev/urandom | tr -dc 'a-zA-Z0-9-_!@#$%^&*()_+{}|:<>?=' | fold -w 10 | grep -i '[!@#$%^&*()_+{}|:<>?=]' | head -n 1
MSF4wj@vP0
Dabei wird eine etwas andere Technik verwendet, nachdem tr
unerwünschte Bytes entfernt wurden, da die Idee darin besteht, mindestens ein Sonderzeichen zu erzwingen. Dies funktioniert, indem der fold
Befehl verwendet wird, um die Zeile in Gruppen von 10 zu unterteilen, und dann verwendet wird, grep
um nur Zeilen abzurufen, die ein Sonderzeichen enthalten. head
Anschließend wird das erste Passwort abgerufen, das die Anforderungen erfüllt.
Antwort3
Ich habe dieses kleine Skript vor ein paar Jahren geschrieben und benutze es seitdem. Wenn überhaupt, ist es ein interessanter Missbrauch printf
und eine Verwendung einer schönen Funktion von BASH, die ich leider selten in Skripten sehe: typeset
.
#!/usr/bin/env bash
# Released into public domain
# Aaron Bockover, 2005
# http://abock.org
typeset -i length; length=$1
typeset -i rounds; rounds=$2
[ $rounds -lt 1 ] && rounds=1
[ $length -lt 1 ] && {
echo "Usage: $0 <length> [<rounds>]" 2>/dev/null; exit 1;
}
for ((i=0; i < $rounds; i++)); do
for ((j=0; j < $length; j++)); do
set=$(($RANDOM % 20))
if [ $set -le 6 ]; then o=65; l=26; # 35% uppercase
elif [ $set -le 13 ]; then o=97; l=26; # 35% lowercase
elif [ $set -le 17 ]; then o=48; l=10; # 20% numeric
elif [ $set -le 18 ]; then o=58; l=7; # 10% symbolic
elif [ $set -le 19 ]; then o=33; l=15; fi
ord=$(($o + $RANDOM % $l))
printf \\$(($ord / 64 * 100 + $ord % 64 / 8 * 10 + $ord % 8))
done
echo
done
Antwort4
Ich würde auch hinzufügenKeePassXDamit haben Sie die Möglichkeit, mithilfe der Systementropie sichere Passwörter zu generieren, und können einige nette Funktionen nutzen – alles über eine grafische Benutzeroberfläche. Sie haben außerdem die Möglichkeit, Ihre Passwörter zu verwalten und in einer verschlüsselten Datei zu speichern.
So sieht die Schnittstelle des KPX-Passwortgenerators aus: