임의의 문자열(예: 비밀번호, 사용자 이름 등)을 생성하고 싶습니다. 원하는 길이(예: 13자)를 지정할 수 있어야 합니다.
어떤 도구를 사용할 수 있나요?
(보안 및 개인정보 보호를 위해 웹사이트에서 온라인으로 문자열을 생성하는 것보다 오프라인으로 문자열을 생성하는 것이 좋습니다.)
답변1
내가 가장 좋아하는 방법은 원하지 않는 문자를 사용 /dev/urandom
하고 tr
제거하는 것입니다. 예를 들어, 숫자와 문자만 얻으려면:
tr -dc A-Za-z0-9 </dev/urandom | head -c 13; echo
아니면,포함하다더 많은 캐릭터OWASP 비밀번호 특수문자 목록:
tr -dc 'A-Za-z0-9!"#$%&'\''()*+,-./:;<=>?@[\]^_`{|}~' </dev/urandom | head -c 13; echo
tr
입력에 대해 불만이 있는 경우,추가해 보세요LC_ALL=C
이와 같이:
LC_ALL=C tr -dc 'A-Za-z0-9!"#$%&'\''()*+,-./:;<=>?@[\]^_`{|}~' </dev/urandom | head -c 13; echo
tr
더 읽기 쉬운 그래픽 문자 클래스도 있습니다. 이를 C
로케일로 제한하면 위의 명시적 문자 목록과 동일한 유형의 출력이 생성됩니다.
LC_ALL=C tr -dc '[:graph:]' </dev/urandom | head -c 13; echo
답변2
나는 openssl
암호화의 스위스 군용 칼인 명령을 사용하고 있습니다.
openssl rand -base64 12
또는
openssl rand -hex 12
답변3
임의의 비밀번호를 생성하려면 다음을 사용할 수 있습니다.pwgen
:
pwgen
무작위로 의미는 없지만 발음 가능한 비밀번호를 생성하세요. 이러한 비밀번호에는 소문자, 대소문자 혼합 또는 숫자만 포함됩니다. 대문자와 숫자는 단어만 외울 때에도 위치를 기억하기 쉽도록 배치되어 있습니다.
길이가 13인 비밀번호 7개를 생성합니다.
geek@liv-inspiron:~$ pwgen 13 7
Eu7Teadiphaec giepahl3Oyaiy iecoo9Aetaib4 phaiChae6Eivi athoo3igee8Co
Iphu4ufeDeelo aesoYi2lie9he
-s
설명에서 언급했듯이 매개변수를 사용하면 엔트로피 감소(즉, 더 안전하고 완전히 무작위이지만 기억하기 어려운 비밀번호 생성)를 피할 수 있습니다 .
geek@liv-inspiron:~$ pwgen -s 13 7
eAfycrPlM4cYv 4MRXmZmyIVNBp D8y71iqjG7Zq7 FQRHcserl4R8O yRCUtPtV3dsqV
0vJpp2h0OrgF1 QTp7MKtJyTrjz
brew
사용자 의 경우 다음을 참조하세요.여기.
임의의 사용자 이름을 생성하려면 다음을 사용할 수 있습니다.gpw
:
이 패키지는 발음 가능한 비밀번호를 생성합니다. 입력한 사전에서 가져온 트라이그램(세 글자)에 대한 통계를 사용합니다.
길이가 13인 7개의 비밀번호(사용자 이름)를 생성합니다.
geek@liv-inspiron:~$ gpw 7 13
sreepoidahsas
risadiestinge
ntodynesssine
deodstestress
natinglumperm
riasigentspir
enderiferback
답변4
이를 수행하는 방법은 다음과 같습니다. 그것이 제가 하는 일입니다. 10자의 무작위 문자열을 생성합니다. "fold"를 다른 문자열 처리 도구로 대체하여 최적화할 수 있습니다.
cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 10 | head -n 1