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
반응형
'프로젝트 > 가계부 - 제작 JavaScript' 카테고리의 다른 글
7. Node 가계부 만들기 [ 유저 기능 (회원 가입) Service코드 작성 ] - 4 (0) | 2022.05.28 |
---|---|
6. Node 가계부 만들기 [ 유저 기능 (회원 가입) repository 코드 작성 ] - 3 (0) | 2022.05.28 |
4. Node 가계부 만들기 [ 유저 기능 (회원 가입) 구현 ] - 1 (0) | 2022.05.28 |
3. Node 가계부 만들기 [ 데이터 / Error 전송 포맷 설정 함수 생성, http-errors 사용, Error 핸들러 ] (0) | 2022.05.23 |
2. Node 가계부 만들기 [ .env 파일 사용, Mysql Sequlize 연결, Mysql 동기화 ] (0) | 2022.05.23 |