Solaris에서 특수 문자를 사용하여 무작위 비밀번호 생성

Solaris에서 특수 문자를 사용하여 무작위 비밀번호 생성

Solaris 서버에서 10자의 임의 비밀번호를 생성하려고 합니다. 웹에 제공된 예는 Linux용이며 대부분은 Solaris용이 아닙니다.

답변1

에서 암호화 품질의 임의 바이트를 얻을 수 있습니다 /dev/urandom. (Solaris 9부터 존재했습니다. Linux에도 존재합니다.) 여기에는 인쇄할 수 없는 문자가 포함되어 있으므로 제거해야 합니다. 다음 명령은 공백이 아닌 인쇄 가능한 무작위 ASCII 문자 10개를 추출합니다.

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

비밀번호에 특수 문자를 사용하지 않는 것이 좋습니다. 비밀번호를 더 안전하게 만들지는 않습니다. 비밀번호의 보안은 엔트로피에 있습니다. 10자 비밀번호의 엔트로피는 10×log 2 (94) ≒ 65.5비트입니다. 9개의 임의 바이트에서 동일한 양의 엔트로피를 얻고 이를 원하는 대로 인코딩할 수 있습니다(예: 16진수).

</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

엄격한 제약이 있는 경우 "비밀번호는 적어도 하나의 특수 문자를 포함해야 합니다"(이것은 비밀번호를 만드는 데 문제가 있는 방법입니다)평범한 사람들이 선택한더 안전하고 무작위로 생성된 비밀번호가 완전히 잘못된 경우) 필요한 클래스의 문자가 포함되지 않을 가능성이 있으므로 무작위 비밀번호를 사용할 수 없습니다. 제한 사항을 충족하지 않는 비밀번호를 거부하면줄이다비밀번호 보안. 대신 비밀번호를 더 길게 만드세요.

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

비밀번호를 기억해야 한다면 이는 또 다른 문제입니다. 기억하기 가장 쉬운 비밀번호는암호.

답변2

Solaris에 Perl이 있으면 다음과 같은 도움이 됩니다.

perl -e 'print[0..9,a..z,A..Z]->[rand 62]for 1..10'

특수 문자의 경우 다음과 같습니다.

perl -e 'print [0..9,a..z,A..Z,qw{- _ / & ?}]->[rand 67]for 0..10'

관련 정보