Node.js 를 이용 하여 암호 생 성 기 를 만 드 는 모든 단계

준비 작업
1.1 프로젝트 생 성

$ npm init 
1.2 설치 의존

$ npm i commander chalk clipboardy
1.3 입구 파일 index.js 만 들 기
...을 들다🌰:process.argv 에 대해 알 아 보 겠 습 니 다.

// index.js
console.log(process.argv)
터미널 실행 명령

$ node index
터미널 에서 볼 수 있 습 니 다.
process.argv 속성 은 Node.js 프로 세 스 를 시작 할 때 들 어 오 는 명령 행 인 자 를 포함 합 니 다.첫 번 째 요 소 는 process.execPath 입 니 다.두 번 째 요 소 는 실행 중인 자 바스 크 립 트 파일 의 경로 입 니 다.나머지 요 소 는 다른 명령 행 인자 입 니 다.
명령 을 집행 하 다

$ node index generate
세 번 째 인자:generate
2.명령 행 작성
2.1 버 전과 설명 추가

// index.js
const program = require('commander');
program.version('1.0.0').description('Simple password generator').parse()
터미널 실행 명령:passgen 의 설명 을 볼 수 있 습 니 다.

명령 계속 실행:passgen 버 전 을 볼 수 있 습 니 다.

2.2 암호 길이 명령 설정

const program = require('commander');

program.version('1.0.0').description('Simple password generator')
program.option('-l --length <number>', 'length of password').parse()
console.log(program.opts())
터미널 실행 명령:passgen 의 암호 길이 명령 을 볼 수 있 습 니 다.

터미널 실행 명령:

2.2 암호 길이 기본 값 추가:8

program.option('-l --length <number>', 'length of password', '8').parse()
console.log(program.opts())
터미널 실행 명령:암호 길 이 를 설정 하지 않 습 니 다.기본 값-8 을 사용 하 는 것 을 볼 수 있 습 니 다.

터미널 실행 명령:암호 길 이 를 10 으로 설정 합 니 다.

2.3 암호 저장 명령 설정

program.option('-l --length <number>', 'length of password', '8')
.option('-s --save', 'save password to password.txt').parse()

2.4 암호 형식 설정:숫자 없 음

.option('-nn --no-number', 'remove numbers').parse()
터미널 실행 명령:기본 값 으로 숫자 가 있 습 니 다.

터미널 실행 명령:숫자 암호 지우 기 설정

2.5 암호 형식 설정:기호 없 음

.option('-ns --no-symbols', 'remove symbols').parse()
터미널 실행 명령:기본 값 으로 기호 가 있 습 니 다.

터미널 실행 명령:숫자 암호 지우 기 설정

3.명령 행 해석-비밀번호 만 들 기

// index.js
const program = require('commander');
const createPassword = require('./utils/createPassword')
const log = console.log

program.version('1.0.0').description('Simple password generator')
program
.option('-l --length <number>', 'length of password', '8')
.option('-s --save', 'save password to password.txt')
.option('-nn --no-numbers', 'remove numbers')
.option('-ns --no-symbols', 'remove symbols').parse()

const {length, save, numbers, symbols} = program.opts()

// Get generated password
const generatedPassword = createPassword(length, numbers, symbols)

// Output generated password

log(generatedPassword)
utils/createPassword.js 만 들 기

// createPassword.js
const alpha = 'qwertyuiopasdfghjklzxcvbnm'
const numbers = '0123456789'
const symbols= '!@#$%^&*_-=+'


const createPassword = (length = 8, hasNumbers = true, hasSymbols = true) => {
    let chars = alpha
    hasNumbers ? (chars += numbers): ''
    hasSymbols ? (chars += symbols): ''
    return generatePassword(length, chars)
}

const generatePassword = (length, chars) => {
    let password = ''
    for(let i = 0; i < length; i++){
        password+= chars.charAt(Math.floor(Math.random()*chars.length))
    }
    return password
}
module.exports = createPassword
터미널 실행 명령:암호 생 성 상황 보기

3.1 컬러 추가

// index.js
const chalk = require('chalk');
log(chalk.blue('Generated Password: ') + chalk.bold(generatedPassword))
터미널 실행 명령:색상 이 변 하 는 것 을 볼 수 있 습 니 다.

3.2 클립보드 추가

// index.js
const clipboardy = require('clipboardy');
// Copy to clipboardy
clipboardy.writeSync(generatedPassword)
log(chalk.yellow('Password copied to clipboardy!'))

4.해당 파일 에 비밀번호 저장

// index.js
const savePassword = require('./utils/savePassword')
// Save to file
if (save) savePassword(generatedPassword)
utils/savePassword.js 만 들 기

const fs = require('fs')
const path = require('path')
const os = require('os')
const chalk = require('chalk')

const savePassword = (password) =>{
    fs.open(path.join(__dirname, '../', 'passwords.txt'), 'a', '666', (e, id) => {
        fs.write(id, password + os.EOL, null, 'utf-8', ()=>{
            fs.close(id, ()=>{
                console.log(chalk.green('Password saved to passwords.txt'))
            })
        })
    })
}

module.exports = savePassword
터미널 실행 명령:프로젝트 에서 passwords.txt 파일 을 만 들 고 암호 가 저장 되 었 음 을 볼 수 있 습 니 다.


5.로 컬 npm 모듈 을 전역 passgen 으로 설정 합 니 다.

// package.json
  "preferGlobal": true,
  "bin":"./index.js",
터미널 실행 명령:

npm link 명령:npm 모듈 을 해당 하 는 실행 항목 에 연결 하여 로 컬 모듈 에 대한 디 버 깅 과 테스트 를 편리 하 게 합 니 다.

//index.js
#!/usr/bin/env node //    
터미널 실행 명령:

총화:큰 성 과 를 거두다.✌️✌️✌️✌️✌️✌️✌️✌️✌️✌️✌️✌️✌️✌️✌️✌️✌️✌️✌️✌️
참조 링크:nodejs.cn/api/process...
총결산
Node.js 를 이용 하여 암호 생 성 기 를 만 드 는 것 에 관 한 이 글 은 여기까지 소개 되 었 습 니 다.Node.js 암호 생 성 기 에 관 한 더 많은 내용 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 찾 아 보 세 요.앞으로 많은 응원 바 랍 니 다!

좋은 웹페이지 즐겨찾기