/ / Wie man diesen Passwortgenerator erzeugt, erzeugt zufällige Länge Passwort - bash

wie man diesen Passwortgenerator erzeugt zufällige Länge Passwort - Bash

Ich bin neu im Bash Scripting und brauche Hilfe dabei. Ich habe dieses Passwort-Generator-Skript und es generiert 8 Zeichen langes Passwort. Ich habe versucht, es zufällige Länge erzeugen zu lassen, aber konnte es nicht tun. Kann mir jemand mit Bash-Skriptwissen einen Vorschlag machen, wie ich das machen könnte?

Hier ist mein Skript

if [ $# -eq 0 ]; then
num=("0" "1" "2" "3" "4" "5" "7" "8" "9")
special=("@" "#" "$" "%" "*" "-" "+")
upper=(A B C D E F G H I J K L M N O P Q R S T U V W X Y Z)
lower=(a b c d e f g h i j k l m n o p q r s t u v w x y z)
length=(0 1 2 3 4 5 7 8)
length2=${#length[*]} #${lower[$((RANDOM%length2))])
lower2=${#lower[*]}   #${lower[$((RANDOM%lower2))]}
upper2=${#upper[*]}   #${upper[$((RANDOM%upper2))]}
num2=${#num[*]}     #${num[$((RANDOM%num2))]}
special2=${#special[*]} #${special[$((RANDOM%special2))]}
abc=`#${lower[$((RANDOM%lower2))]}`

echo "$word${special[$((RANDOM%special2))]}${num[$((RANDOM%num2))]}${lower[$((RANDOM%lower2))]}${upper[$((RANDOM%upper2))]}${lower[$((RANDOM%lower2))]}${upper[$((RANDOM%upper2))]}${lower[$((RANDOM%lower2))]}${upper[$((RANDOM%upper2))]}$length" | fold -w 1 | shuf | tr -d "n"
echo

fi

Antworten:

1 für die Antwort № 1

Bash "s $RANDOM kann nicht verwendet werden, um zufällige Passwörter zu erzeugen, weil es zu vorhersehbar ist.

Verwenden Sie etwas wie, um ein sichereres Kennwort einer Pseudozufallslänge zu generieren

tr -cd "a-zA-Z0-9@#$^*-+" < /dev/urandom | head -c $((RANDOM % 8 + 16))

Natürlich schätze ich, dass Sie es einfach tun wollenDies für Lernzwecke, aber Leute, die später googlen "wie man zufällige Länge Passwörter in bash generiert" sollten nicht einen unsicheren Algorithmus als ihr erstes Ergebnis bekommen.