NodeJs를 사용하여 10줄 미만의 코드로 나만의 암호 생성기를 만드는 방법

우리가 왜 이러는거야



최근에 우리 모두가 알고 있듯이 웹사이트와 앱은 귀하의 계정 암호에 대해 더욱 엄격해졌습니다. 최소 요구 사항은 다음과 같습니다. 길이는 8자이고 영숫자 조합이어야 합니다. 또한 최신 버전의 IOS 및 Android를 사용하여 '약한' 것으로 간주되는 모든 비밀번호를 찾을 수 있는 전체 시스템을 만들었으며 비밀번호 중 하나가 데이터 유출에 나타나면 경고합니다.
나는 말이 있습니다 :

If something already exists but you feel capable of doing it yourself then do it !



이 말 뒤에 내가 정말로 의미하는 것은 당신이 염두에 두고 있는 버전(모든 복잡성과 함께)이 존재하지 않기 때문에 그것이 이미 존재한다는 것은 중요하지 않다는 것입니다. 사물이 실제로 어떻게 작동하는지 더 잘 이해하게 될 것입니다. 그러면 기술적인 능력뿐만 아니라 대화하는 능력도 얻게 되어 다른 사람을 가르칠 수 있는 기회가 생깁니다(제게는 이것이 인생에서 가장 소중한 자산입니다).

요구 사항


  • NodeJs이 컴퓨터에 설치되어 있고 아직 설치되지 않은 경우 다음과 같이 설정합니다.

  • 가장 간단한 솔루션: nvm 사용

  • 공식 소스에서: here에서 다운로드할 수 있습니다.

  • 패킷 관리자 사용:


  • apt-get 사용

    # The first step is to update your system
    $ sudo apt-get update
    
    # Then run
    $ sudo apt install nodejs
    $ sudo apt install npm
    
    # Finally test installation using
    # It should output the currently installed version of node & npm
    $ node -v 
    $ npm -v
    


    홈브류 사용

    # The first step is to update your brew local cache
    $ brew update
    
    # Then run, it will install both nodejs and npm at the same time
    $ brew install node 
    
    # Finally test installation using
    # It should output the currently installed version of node & npm
    $ node -v
    $ npm -v
    


    시작하기



    먼저 bin 폴더에 새 파일을 생성할 것입니다. ~/.bin 에 있는 파일을 사용하기로 결정했습니다. 이렇게 하면 원하는 위치에서 암호 생성기 스크립트를 호출할 수 있습니다.
    ~/.bin/ 이 이미 전역 환경 변수 $PATH 에 등록되고 내보내졌다고 가정합니다. 그렇지 않은 경우 터미널 mkdir ~/.bin 으로 이동한 다음 셸 구성 파일(예: ~/.bashrc , ~/.bash_profile , ~/.zshrc , ~/.zsh_profile ...)을 편집하여 export PATH=$PATH:~/.bin 의 끝에서 발생합니다.

    이 작업이 완료되면 ~/.bin/ 폴더로 이동하여 touch 명령을 사용하여 파일을 생성합니다. 이름은 createPassword 입니다.
    이제 좋아하는 코드 편집기에서 파일을 열고 VsCode 을 수행하여 개인적으로 code ./createPassword 을 사용하겠습니다. 모든 것이 올바르게 설정되었으면 이전에 만든 파일의 이름을 딴 빈 페이지가 생겼을 것입니다. 이제 비밀번호 생성기 코드를 살펴보겠습니다.

    스크립트



    아시다시피 NodeJs에는 crypto라는 강력한 내장 암호화 라이브러리가 있습니다. 가져오겠습니다.

    const crypto = require('crypto');
    


    To make sure your installation of node is working I suggest you to run node NAME_OF_THE_SCRIPT, if it doesn't throw any error then you are all settle.



    이제 우리가 암호 생성기에서 찾고 있는 것은 강도와 ​​견고성입니다. 길수록 좋다는 가정으로 개념을 단순화할 수 있습니다. 그런 다음 생성기에 출력 암호를 ​​원하는 기간을 알려주는 방법이 필요합니다. 우리의 경우 인수를 사용합니다. 이제 다음 줄을 추가합니다.

    let args = process.argv.slice(2);
    


    We slice the arguments received in order to extract the custom 'parameters' (in our case, a number that we will call 'length')



    이제 스크립트에서 length 이라는 변수를 만들 수 있습니다. 그 값은 스크립트에 전달하는 숫자와 같습니다.

    const length = Number(args[0]);
    


    Note that we cast our argument to Number because when we receive it from the terminal it's of type String



    다음과 마지막 단계는 구문 분석된 숫자가 오류(또는 NaN)가 아닌 숫자를 반환하는지 확인하는 것입니다. 그렇다면 단순히 암호화 라이브러리를 호출하고 임의의 암호를 생성합니다. 그렇지 않으면 스크립트에 올바른 매개 변수를 전달하지 않았음을 사용자에게 경고합니다. 조건은 다음과 같습니다.

    if (typeof(length) === 'number' && !isNaN(length)) {
       const pass = crypto.randomBytes(length).toString("hex");
       console.log(pass);
       process.exit(0); // No errors
    } else {
       console.log('Error: Param must be of type number');
       process.exit(1); // Error
    }
    


    모든 것을 합치면 스크립트는 다음과 같아야 합니다.


    그게 다입니다. NodeJs를 사용하여 10줄 미만의 코드로 암호 생성기를 만드는 방법에 대한 이 작은 자습서를 즐기시기 바랍니다.
    다음 시간까지 😉.

    나에 대해 조금 더:



    저는 수석 소프트웨어 엔지니어이자 사람들이 자신의 아이디어를 신뢰할 수 있고 보람 있고 수익성 있는 비즈니스로 개발하고 성장시키는 데 도움을 주는 컨설팅에 중점을 둔 설립자입니다.
    내 네트워크에 대한 몇 가지 링크는 다음과 같습니다.
  • GitHub
  • 좋은 웹페이지 즐겨찾기