Linux에서 일반 사용자와 관리자 모두를 위해 강력한 암호를 만드는 방법과 특정 프로그램이 있는지 궁금합니다.
답변
pwgen 은 암호를 생성하는 많은 프로그램 중 하나입니다
답변
개인적으로, 생성 된 암호는 기억하기 매우 어렵 기 때문에 암호 생성기를 사용하지 않는 것이 좋습니다. 그러나 한 가지 휴대용 솔루션은 / dev / urandom 을 사용하는 것입니다
특수 문자를 포함하지 않는 임의의 비밀번호를 작성하는 길이는 10 자입니다.
$ cat /dev/urandom | tr -dc 'a-zA-Z0-9' | head -c 10`
dyxJRKldvp
이것은 / dev / urandom에서 바이트를 가져 tr
와서 명령에 지정된 패턴에 맞지 않는 바이트를 삭제하고을 사용 하여 10 자로 제한합니다 head
.
특수 문자를 포함하는 임의의 비밀번호를 작성하는 길이는 10 자입니다.
$ cat /dev/urandom | tr -dc 'a-zA-Z0-9-_!@#$%^&*()_+{}|:<>?=' | fold -w 10 | grep -i '[!@#$%^&*()_+{}|:<>?=]' | head -n 1
MSF4wj@vP0
이것은 tr
불필요한 바이트를 제거한 후에 약간 다른 기술을 사용 합니다. 아이디어는 적어도 하나의 특수 문자를 갖도록 강요하기 때문입니다. 이것은 fold
명령을 사용하여 행을 10 개의 그룹으로 랩핑 한 다음 grep
특수 문자를 포함하는 행만 페치 하는 데 사용 됩니다. head
그런 다음 요구 사항을 충족하는 첫 번째 비밀번호를 가져옵니다.
답변
나는 몇 년 전에이 작은 스크립트를 작성했으며 그 이후로 사용 해 왔습니다. 어쨌든, 그것은 printf
불행히도 스크립트에서 거의 볼 수 없는 재미있는 BASH의 남용 과 흥미로운 기능을 사용합니다 typeset
.
#!/usr/bin/env bash
# Released into public domain
# Aaron Bockover, 2005
# http://abock.org
typeset -i length; length=$1
typeset -i rounds; rounds=$2
[ $rounds -lt 1 ] && rounds=1
[ $length -lt 1 ] && {
echo "Usage: $0 <length> [<rounds>]" 2>/dev/null; exit 1;
}
for ((i=0; i < $rounds; i++)); do
for ((j=0; j < $length; j++)); do
set=$(($RANDOM % 20))
if [ $set -le 6 ]; then o=65; l=26; # 35% uppercase
elif [ $set -le 13 ]; then o=97; l=26; # 35% lowercase
elif [ $set -le 17 ]; then o=48; l=10; # 20% numeric
elif [ $set -le 18 ]; then o=58; l=7; # 10% symbolic
elif [ $set -le 19 ]; then o=33; l=15; fi
ord=$(($o + $RANDOM % $l))
printf \\$(($ord / 64 * 100 + $ord % 64 / 8 * 10 + $ord % 8))
done
echo
done
답변
또한 KeePassX 를 추가 하여 시스템 엔트로피를 사용하여 GUI를 사용하여 몇 가지 멋진 기능으로 강력한 암호를 생성하는 옵션을 제공합니다. 또한 암호를 관리하고 암호화 된 파일로 저장하는 옵션도 제공합니다.
KPX 비밀번호 생성기 인터페이스는 다음과 같습니다.
답변
apg
쉽게 기억할 수있는 암호를 원한다면 나쁜 선택이 아닙니다.
; apg -m 16 -a 0 -t
ByajNudgolIston9 (Byaj-Nud-gol-Ist-on-NINE)
Af}ockhuecUjrak8 (Af-RIGHT_BRACE-ock-huec-Uj-rak-EIGHT)
IakijKadmomIvgig (Iak-ij-Kad-mom-Iv-gig)
NutIlOsyahodBeef (Nut-Il-Os-ya-hod-Beef)
anMechOybekazell (an-Mech-Oyb-ek-az-ell)
VumushCummAd{fra (Vum-ush-Cumm-Ad-LEFT_BRACE-fra)
에 따른 참고 이 암호는 긴 적어도 12 자이어야합니다.
답변
나는 무작위가 아닌 것을 사용하지만 모든 공격 목적 (마스터 비밀번호, 마지막 패스 는 다른 비밀번호를 생성 하기에 충분)으로 다양 합니다. 마스터 비밀번호를 생성하는 방법은 다음과 같습니다.
echo -n "some seed" | openssl dgst -binary -sha1 | base64 | sed -e 's/.\{4\}/& /g'
그리고 출력
H1sI Wpbj JE2P CdVJ A1qb 9B/e u7M=
이제 몇 개의 섹션을 선택하고 비밀번호를 만들고, 재정렬하고, 일부를 제외하고, 문자를 추가하거나 2를 무작위로 사용하십시오. 시드를 기억할 수있는 한 시드를 재생성하고 비밀번호를 복구 할 수 있습니다 (너무 많은 수정을하지 않는 한)
답변
pwgen
복잡성을 설정하기 위해 여러 매개 변수를 지정하고, 생성 할 문자 클래스 수, 길이 등의 문자 매개 변수를 지정할 수있는 멋진 cli 도구입니다.