Shell-Script
生成至少 2 個數字、2 個大寫字母、1 個符號、x 小寫字母和最大長度為 16 的密碼
我嘗試生成密碼… 但是這些不足以生成精確的文字和數字計數
pwgen
…makepasswd
pwgen -c -n -y -B 12 1
這無法按預期工作,因為我無法定義最小數字計數…
我想定義每種文字類型中允許的最小和最大字元…
是否
crunch
具有此功能?你有什麼其他工具建議嗎?
最受歡迎的 shell 腳本…(使用正則表達式)
提前致謝
=~
只需執行它直到它工作(在支持正則表達式匹配的較新版本的 bash 中):unset pass; until [[ \ $pass =~ [0-9].*[0-9] && $pass =~ [A-Z].*[A-Z] && $pass =~ [^A-Za-z0-9] \ ]]; do pass=$(LC_ALL=C pwgen -c -n -y -B 12 1) done
例如:
$ unset pass; until [[ $pass =~ [0-9].*[0-9] && $pass =~ [A-Z].*[A-Z] && $pass =~ [^A-Za-z0-9] ]]; do pass=$(LC_ALL=C pwgen -c -n -y -B 12 1); done; echo $pass AhP4eej3bie#
請注意,我將“符號”定義為“不是字母也不是數字”。如果你願意,你可以選擇更嚴格的東西。
如果您的外殼不支持正則表達式匹配,請嘗試:
$ perl -le 'until ($pass =~ /\d.*\d/ && $pass =~ /[A-Z].*[A-Z]/ && $pass =~ /[^A-Za-z0-9]/){chomp($pass=`LC_ALL=C pwgen -c -n -y -B 12 1`)}; print "$pass"' iep7EJ-o9ahf