Генерировать случайный пароль со специальными символами в Solaris

Мы должны поместить строку в кавычки, чтобы оценить их как строки. Если мы попытаемся оценить строку со встроенным дефисом (-), оболочка будет рассматривать ее как вариант для проверки, но не как строку. Для получения дополнительной информации об операторах вы можете проверить это здесь

1
08.05.2018, 15:31
1 ответ

Вы можете получить случайные байты криптографического -качества из /dev/urandom. (Он существует с Solaris 9. Он также существует в Linux. )Сюда входят непечатаемые символы, поэтому их необходимо удалить. Следующая команда извлекает 10 случайных печатных символов ASCII без пробела -.

</dev/urandom tr -dc '!-~' | dd ibs=1 obs=1 count=10

Я не рекомендую использовать в паролях специальные символы. Они не делают пароли более безопасными. Что делает пароль безопасным, так это его энтропия. Пароль из 10 -символов имеет 10×log 2(94 )≈ 65,5 бит энтропии. Вы можете получить такое же количество энтропии из 9 произвольных байтов и закодировать их как хотите, например, как шестнадцатеричное.

</dev/urandom dd ibs=1 obs=1 count=9 | od -tx1 -An | tr -d ' '

Или как Base64, что короче.

</dev/urandom dd ibs=1 obs=1 count=9 | uuencode -m - | sed -n 2p

Если есть какое-то жесткое ограничение, что «пароли должны содержать хотя бы один специальный символ» (, что является сомнительным способом сделать пароли , выбираемые обычными людьми более безопасными, и совершенно неверно для случайно генерируемых passwords ), то вы не можете просто использовать случайный пароль, потому что есть шанс, что он не будет содержать ни одного символа в требуемом классе. Если вы отклоняете пароли, которые не соответствуют ограничениям, вы снижаете безопасность пароля. Вместо этого сделайте пароль длиннее, например.

</dev/urandom dd ibs=1 obs=1 count=9 | uuencode -m - | sed '2!d; s/$/-Aa1/'

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

3
27.01.2020, 23:32

Теги

Похожие вопросы