Несколько программ однострочников для генерации случайных паролей в Linux
- Пароль из 14 букв смешанного регистра и цифр:
unset pw; declare pw;while [ ${#pw} -lt 14 ]; do pw="$pw$(dd if=/dev/urandom bs=1 count=1 2>/dev/null | grep '[a-fA-F0-9]')"; done; echo $pw
- Пароль из 14 букв в заглавном регистре и цифр:
unset pw; declare -u pw;while [ ${#pw} -lt 14 ]; do pw="$pw$(dd if=/dev/urandom bs=1 count=1 2>/dev/null | grep '[a-fA-F0-9]')"; done; echo $pw
- Пароль из 14 букв в малом регистре и цифр:
unset pw; declare -l pw;while [ ${#pw} -lt 14 ]; do pw="$pw$(dd if=/dev/urandom bs=1 count=1 2>/dev/null | grep '[a-fA-F0-9]')"; done; echo $pw
- Пароль из 14 букв смешанного регистра, цифр и спецсимволов:
head /dev/urandom | tr -dc 'A-Za-z0-9`\-\=[];,./' | head -c 14; echo ''
У этой программы есть два недостатка:
Первый это не экономное, избыточное чтение пула энтропии.
Второй недостаток проявится если в выборке из пула энтропии не будет нужного количества символов удовлетворяющих заданному условию, тогда сформированный пароль будет короче требуемого.
- Программа гибрид из первого и четвёртого варианта, сохранившего его достоинства, но лишённого его недостатка(я скопировал команду фильтрации из четвёртой программы в первую):
unset pw; declare pw;while [ ${#pw} -lt 14 ]; do pw="$pw$(dd if=/dev/urandom bs=1 count=1 2>/dev/null | tr -dc 'A-Za-z0-9`\-\=[];,./')"; done; echo $pw