LINUXTALKS.CO
БлогиHow-to

Пароль | Password HOWTO

 , , , ,

L


1

1

Несколько программ однострочников для генерации случайных паролей в Linux

  1. Пароль из 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
  1. Пароль из 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
  1. Пароль из 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
  1. Пароль из 14 букв смешанного регистра, цифр и спецсимволов:
head /dev/urandom | tr -dc 'A-Za-z0-9`\-\=[];,./' | head -c 14; echo ''

У этой программы есть два недостатка:

Первый это не экономное, избыточное чтение пула энтропии.

Второй недостаток проявится если в выборке из пула энтропии не будет нужного количества символов удовлетворяющих заданному условию, тогда сформированный пароль будет короче требуемого.

  1. Программа гибрид из первого и четвёртого варианта, сохранившего его достоинства, но лишённого его недостатка(я скопировал команду фильтрации из четвёртой программы в первую):
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
★★★

Проверено: Kaschenko ()

Чтобы не было проблем с энтропией, можно дернуть типа такого:

$ openssl rand -base64 14
deep-purple    
★★★★★★★★★★
Android / Firefox
Ограничение на отправку комментариев: только для зарегистрированных пользователей, score>=90