자바스크립트(JavaScript)에서 비밀번호 생성기를 만들려면 Math.random() 메서드를 활용하면 됩니다. Math.random()은 0 이상 1 미만의 난수를 반환하기 때문에, 문자 집합에서 무작위로 글자를 선택하는 데 적합합니다.
비밀번호 생성기의 기본 원리
먼저 비밀번호에 사용할 문자들을 하나의 문자열로 정의합니다. 여기에는 대문자, 소문자, 숫자를 포함시키고, 반복문을 통해 지정한 길이만큼 무작위 문자를 추출하여 이어 붙이면 됩니다.
예제 코드
다음은 지정한 길이의 랜덤 비밀번호를 생성하는 전체 코드입니다.
function makePassword(maxLengthPass) {
var collectionOfLetters = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
var generatedPassword = "";
var size = collectionOfLetters.length;
for (var i = 0; i < maxLengthPass; ++i) {
generatedPassword = generatedPassword + collectionOfLetters.charAt(Math.floor(Math.random() * size));
}
return generatedPassword;
}
console.log(makePassword(5));코드 설명
- collectionOfLetters: 비밀번호 후보가 되는 대문자, 소문자, 숫자 0~9까지의 문자 집합입니다.
- Math.random() * size: 문자 집합 길이만큼 곱해 0부터 size-1 사이의 임의의 인덱스를 만듭니다.
- Math.floor(): 난수를 정수로 내림 처리하여 유효한 인덱스로 변환합니다.
- charAt(): 해당 인덱스 위치의 문자를 가져와 생성 중인 비밀번호에 추가합니다.
프로그램 실행 방법
Node.js 환경에서 위 프로그램을 실행하려면 터미널에서 다음 명령어를 입력합니다.
node fileName.js
여기서는 파일 이름이 demo287.js라고 가정하겠습니다.
실행 결과
콘솔에 다음과 같이 5자리 랜덤 비밀번호가 출력됩니다. 실행할 때마다 결과는 달라집니다.
PS C:\Users\Amit\javascript-code> node demo287.js eeVK0
더 강력한 비밀번호를 원한다면?
실무에서 보안 수준을 높이려면 문자 집합에 특수문자(!, @, #, $ 등)를 추가하고, 비밀번호 길이를 최소 8자 이상으로 설정하는 것이 좋습니다. 예를 들어 문자열 끝에 !@#$%^&*를 붙이면 특수문자가 포함된 더 안전한 비밀번호를 생성할 수 있습니다.