2017-06-05 3 views
3

Ich habe derzeit ein Passwort, das generiert wird, das ist ein Hash des Datums. Ich möchte die Sicherheit dieses generierten Passworts erhöhen, indem ich Groß- und Kleinbuchstaben, Zahlen und Sonderzeichen in einer Länge von mindestens 10 Zeichen hinzufüge.Erstellen eines Passworts in Bash

Was ich derzeit habe, ist unten. Wie Sie sehen können, weist es die Ausgabe meiner PASSWORD-Variablen zu.

PASSWORD=$(date +%s | sha256sum | base64 | head -c 15) 

Ich bin nicht sicher, ob ich diesen Inline tun können, oder, wenn ich eine Funktion in meinem Bash-Skript erstellen müssen passen? Ist das überhaupt möglich?

Vielen Dank im Voraus.

+0

Was Sie derzeit haben, ist sehr schwach wegen der Entropie. Die Entropie entspricht den Daten. Dies kann leicht brutal erzwungen werden. Die Antwort von Cyrus unten verwendet eine viel bessere Quelle der Eingabe-Entropie:/dev/urandom. – TheGreatContini

+0

Siehe auch: https://stackoverflow.com/questions/30947873/random-password-generate-in-shell-script-with-one-special-character – codeforester

+0

Ich schlage vor, pwgen zu installieren und zu verwenden. – ArturFH

Antwort

6

Mit tr und head:

password=$(tr -dc 'A-Za-z0-9!?%=' < /dev/urandom | head -c 10) 

echo "$password" 

Ausgabe (Beispiel):

 
k?lmyif6aE 

tr liest Bytes über stdin von Linux‘speziellen Zufall Gerät /dev/urandom und entfernt alle Bytes/Zeichen aber A bis Z, a bis z, 0 bis 9 und !?%=. tr sendet seine Ausgabe über stdout an head 's stdin. head schneidet die Ausgabe nach 10 Bytes ab.

+0

Genau darum geht es mir. Darf ich nach den Bedingungen des Laien fragen, die das oben genannte erklären, damit ich lernen kann? –

+1

@GraemeLeighfield: Ich habe meine Antwort aktualisiert. – Cyrus

Verwandte Themen