Computer >> 컴퓨터 >  >> 프로그램 작성 >> BASH 프로그래밍

이 Bash 스크립트로 임의의 암호 생성

주기적으로 새 암호를 만들어야 하며 그 중 일부는 다른 암호보다 더 안전해야 합니다. 내 마음은 종종 새 로그인을 만들어야 할 때 공백을 그리는 것 같고 이 짧은 Bash 스크립트가 그 공백을 채웁니다. 전체 공개:이 스크립트의 대부분이 어딘가에 게시된 것을 발견하고 약간 수정했습니다.

#!/usr/bin/env sh
echo 'Generating 12-character passwords'
for ((n=0;n<12;n++))
do dd if=/dev/urandom count=1 2> /dev/null | uuencode -m - | sed -ne 2p | cut -c-12
done

나는 이것이 어떻게 작동하는지에 대한 모든 세부 사항을 알지 못하지만 약간의 연구와 실험을 했습니다. 스크립트의 "고기"는 do dd로 시작하는 줄에 있습니다. . dd를 본 적이 있을 것입니다. 한 디스크를 다른 디스크로 복사하는 데 사용되지만 이 경우 dev/urandom을 사용하여 임의의 문자 블록 하나를 생성하는 데 사용됩니다. . dd의 피드백 메시지 제거된 다음 문자가 uuencode로 전달됩니다. , 모든 문자를 인쇄할 수 있도록 변환하는 작업입니다(즉, 제어 문자 없음).

uuencode 명령은 sharutils 패키지를 설치하여 얻을 수 있습니다.

sed의 작업 대문자와 소문자가 섞이도록 좀 더 변형한 것 같습니다. 마지막으로 잘라내기 12자 암호로 끝나도록 12자를 잘라냅니다. for 루프는 12번 실행되므로 12개의 암호를 얻습니다.

Generating 12-character passwords 
8WMKHeXeYsND
X+V3jWOuBWwp
fSk6inI+LfYP
hIPndcBOSh7m
bb/w9mx8OlHv
hdIOibUaMt3Y
wl//CobIG5bR
dih0qQQMJiXw
BIN2QfNA4jCe
DF0c8Auz1qL4
RM8MMq/D8C8H
rZIG5hbghcMy

이 예제 출력은 문자가 꽤 잘 뒤섞인 것을 보여줍니다. 한 가지 주의할 점은 영숫자가 아닌 문자는 /+ .

새 비밀번호가 필요할 때 이 출력을 통해 나에게 "어필하는" 비밀번호를 찾습니다. 자주 사용하게 될 비밀번호라면 나중에 기억할 수 있을 것 같아요.

문자 그대로 그대로 사용할 이유가 없습니다. 원하는 대로 문자를 추가하거나 수정할 수 있습니다. 저는 주로 8자리 비밀번호를 사용합니다. 일부 장소에서는 하나 이상의 소문자, 하나의 대문자, 하나의 숫자 및 하나의 기호와 같이 특정 요소를 포함하기 위해 암호가 필요합니다.

비밀번호가 마음에 들지 않으면 스크립트를 다시 실행하여 다른 비밀번호 12개를 생성합니다. 누군가가 dev/urandom이라고 댓글을 달 수 있습니다. 의사 난수만 생성하지만 이 스크립트는 내가 혼자 할 수 있는 것보다 확실히 훨씬 더 나은 작업을 수행합니다.