5. Node 가계부 만들기 [ 유저 기능 (회원 가입) 필요 함수 구현 ] - 2

2022. 5. 28. 17:30프로젝트/가계부 - 제작 JavaScript

https://crispypotato.tistory.com/213 에서는 기본적인 route 연결을 했다

 

이번 포스트에서는 회원 가입시 필요 함수를 제작한다

 

1. lib/lib.js 파일안 에 추가적으로 필요 함수 설명

회원 가입이 진행 될 때 비밀번호는 그냥 저장하지 않고 암호화를 진행 한 후 저장한다.

이때 암호방식은 *salt 암호화를 진행 할 것이다. 

 

랜덤한 데이터가 필요하여 salt 생성 함수 CreateSalt()를 생성한다.

단방향 암호화에서 비밀번호 확인을 위해 Password()함수를 생성한다.

 

2. CreateSalt() 함수 생성

/lib/lib.js
const CreateSalt = () => {
  const salt = Math.round(new Date().valueOf() + Math.random()) + ''
  return salt
}

3. Password() 함수 생성

node에서 기본 제공 하는 crypto 모듈 를 사용한다.

 비빌번호와, salt값을 전송받으면 해시값이 생성된다. 

const crypto = require('crypto')

const Password = (data) => {
  const { pwd, salt } = data
  const password = crypto
    .createHash('sha512')
    .update(pwd + salt)
    .digest('hex')
  return password
}

 

4. 최종 lib.js

const crypto = require('crypto')
const Error = (err, req, res, next) => {
  res.status(err.statusCode).json({
    code: err.statusCode,
    result: false,
    msg: err.message,
    data: ''
  })
}

const Send = (res, data) => {
  res.status(200).json({
    code: 200,
    result: true,
    msg: '',
    data
  })
}

const CreateSalt = () => {
  const salt = Math.round(new Date().valueOf() + Math.random()) + ''
  return salt
}

const Password = (data) => {
  const { pwd, salt } = data
  const password = crypto
    .createHash('sha512')
    .update(pwd + salt)
    .digest('hex')
  return password
}

module.exports = { Error, Send, Password, CreateSalt }

 

 

* salt 설명 출처 : https://hansoul.tistory.com/77

728x90
반응형