4 октября 2011 г.

Генерация паролей в *nix - это просто!

Хотелось бы увековечить некий замечательный инструмент системного администратора *nix систем, а именно - простой, не требующий никаких дополнительных средств, кроме встроенных в систему утилит, генератор паролей.

вот такой вот прекрасный shell скрипт для генерации паролей:

i=0; while [ $i -lt <pass_cnt> ]; do  cat /dev/urandom | tr -dc a-z0-9A-Z | head -c<pass_length> ; echo; let i=i+1; done

вобщем-то все гениальное просто:
У нас всегда есть /dev/urandom - в котором много псевдослучайного содержимого, - главное правильно вычленить из него то, что подходит для паролей (не загромождаем пароли всякими :, %, № и т.д. - выставим, что нам надо латинские буквы и цифры a-z0-9A-Z). Что нужно - так это заполнить числами <pass_cnt> - количество генерируемых паролей, <pass_length> - длинна генерируемого пароля. Вуаля!
Примерный вывод:

/home/eugene #i=0; while [ $i -lt 5 ]; do  cat /dev/urandom | tr -dc a-z0-9A-Z | head -c25 ; echo; let i=i+1; done
KuYJfTccG8LXTobjPAvonccQE
TYYWMoNxivCgX1BntWncATGWr
ocDyB9rMZ1mN6Et8EV3wmKiOa
u65z86ptl1ZlhCiGsVZ1s0XD7
tEO6zBn4dxUPtabFb7GrkjjrM

5 паролей, по 25 символов.

Для удобства можно выставить алиасы для bash:
alias pass10='i=0; while [ $i -lt 10 ]; do  cat /dev/urandom | tr -dc a-z0-9A-Z | head -c10 ; echo; let i=i+1; done'
alias pass20='i=0; while [ $i -lt 10 ]; do  cat /dev/urandom | tr -dc a-z0-9A-Z | head -c20 ; echo; let i=i+1; done'