본문 바로가기

JavaScript

Node.js 3차 미니프로젝트 Node.js 비밀번호 암호화

728x90

Node.js 3차 미니프로젝트 Node.js 비밀번호 암호화


Node.js 비밀번호 hash

 

📌 활용한 라이브러리

npm i crypto

 

 

📄 signup

const crypto = require('crypto');
const { User } = require("../models");

const { userType, email, phoneNumber, password, name, address, point } = req.body;

const hashPassword = crypto.createHash('sha512').update(req.body.password + 10).digest('hex');

await User.create({ userType, email, phoneNumber, password:hashPassword, name, address, point });

임의의 값으로 넣은 10은 사실 난수를  발생시켜 넣어주면 좋지만,

const salt = crypto.randomBytes(128).toString('base64');

난수값도 db에 저장해야 해서 table 변경이 필요하다..

난수값은 여러 자료를 찾아보니 salt라는 변수로 쓴다.

 

좀 귀찮아서 그냥 했다.

 

65f0e26760f01c88f13ffffd60fc4c2352097b6fd9ba868298fe9827440140a1dbf65da261161dc3dfa8da641b9e58aa033e12550549e4a299d944328352b3ca

이런 형태의 복호화는 어렵고 암호화만 가능한 hash값이 들어간다.


📄 login

const crypto = require('crypto');
const { User } = require("../models");

const { email, password } = req.body;

const hashPassword = crypto.createHash('sha512').update(req.body.password + 10).digest('hex');

const userId = await User.findOne({
            where: {email, password:hashPassword}
        });