Categories
프로그래밍

비밀번호 암호화 및 dotenv 사용

기존 소스에서는 회원가입을 할 때

프론트엔드에서 salt 생성 및 해시화를 한 이후 백엔드로 넘겨주었는데

이렇게 하면 프론트엔드에서 탈취를 할 가능성이 있다고 한다.

그래서

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
app.post(‘/register’, (req, res) => {
    const { email, username, password } = req.body;
 
    const salt = crypto.randomBytes(16).toString(‘hex’);
    const hash = crypto.createHash(‘sha256’).update(password + salt).digest(‘hex’);
 
    const query = ‘INSERT INTO users (email, username, password, salt) VALUES (?, ?, ?, ?)’;
 
    db.query(query, [email, username, hash, salt], (err, results) => {
        console.log(results);
        if (err) {
            return res.status(500).json({ message: ‘회원가입 실패’ });
        }
        return res.status(201).json({ message: ‘회원가입 성공’ });
    });
});
 
cs

백엔드에서 처리를 하게 바꾸었고

하드코딩 되어있던 MySQL 등 환경 변수들을 dotenv 를 이용하여

.env 파일로 관리하게 바꾸었다.

By nicky8209

안녕하세요.
개발자
권동원 입니다.

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다