ΛneOK v4 blog

일상의 잡다한 생각과 내용을 글 또는 사진으로 표현하는 일상 블로그입니다.

# Side Menu
  • recentPost

  • popularPost

  • Archive

  • recentComment

Study/Etc_Studying

랜덤 암호 생성기

2019. 5. 21., AneOK
728x90

장비들을 관리하다 보면 매번 비밀번호 때문에 언젠가는 한번 만들어야지 생각만 하다가 오늘은 시간이 나서 인터넷을 뒤져 보는데 마침 저에게 맞는 프로그램이 있어(출처는 밑에) 약간의 수정만 해서 사용하고 있습니다. (장비가 구형이라 특수문자가 인식이 잘 되지 않는 관계로 약간만 제거 했습니다.) 저 같은 경우에는 12자가 끝이라 더는 필요가 없네요. 그래서 수정하고 나니 언제 또 포맷하면서 날릴지 몰라 이렇게 남겨 봅니다.

실행화면

랜덤 암호 생성기

기본적으로 8~12자가 생성 됩니다.
첫문자는 영어이고 기본이 '소문자' 입니다.

당신의 새로운 암호
클 릭

코드

document.getElementById("pswordbtn").addEventListener("click", function () {
    const pwoutput = document.getElementById("password");

    let password = "",
        char = "",
        chars = "0123456789abcdefghjkmnopqrstuvwxyz", // 미리 입력(비슷한 문자 제거함, l, i)
        fchars = "abcdefghjkmnopqrstuvwxyz", //처음 문자만 입력
        number = ""; // 출력할 개수

    if (document.getElementById("f-capital").checked) {
        fchars = "ABCDEFGHJKLMNPQRSTUVWXYZ" // 대문자 변경
    }
    if (document.getElementById("symbol").checked) {
        chars = chars + "!@#$%^&*" // 각종 기호 추가
    }
    if (document.getElementById("capital").checked) {
        chars = chars + "ABCDEFGHJKLMNPQRSTUVWXYZ" // 대문자 추가 (비슷한 문자 제거함, O, I)
    }
    
    number = Math.floor(Math.random() * 4) + 8; // 8 ~ 12까지의 램덤 숫자,4는 12-8

    char = fchars.charAt(Math.floor(Math.random() *fchars.length));
    password = char;
    for (let i = 0; i < number-1; i++) { // number-1은 fchars에서 1개를 사용
        const random = Math.floor(Math.random() * chars.length);
        char = chars.charAt(random);
        password = password + char;
    }

    pwoutput.innerText = password;

    if (document.getElementById("wordch").checked) {
        const select = document.createRange()
        select.selectNode(pwoutput),
        window.getSelection().removeAllRanges(),
        window.getSelection().addRange(select),
        document.execCommand("copy");
    }
});

출처 : [Javascript] 랜덤으로 강력한 비밀번호 만들기를 이용 저에게 맞게 수정한 것입니다.


연결 포스트 - 사이트별 비밀번호 기록지(엑셀파일) (link)

728x90