당연한 말이지만, 암호를 Hash처리 한 후 DB에 저장하면 보안을 높일 수 있다.
암호를 Hash화 하는데 꽤 유명한 라이브러리 중 하나이기도 하고, 사용법도 어렵지 않아 가져와봤다.
npm install bcrypt
const bcrypt = require('bcrypt'); const saltRounds = 10; const 유저가_적은_패스워드 = 's0/\/\P4$$w0rD';
bcrypt.hash(유저가_적은_패스워드, saltRounds, function(err, 해시화된암호) { // Store hash in your password DB. // DB에 암호화된 해시암호를 저장하면 된다. });
<div>
<input type="text" id="id">
<input type="password" id="password">
<button id="register" type="submit">가입하기</button>
</div>
<script src="https://code.jquery.com/jquery-3.4.1.min.js"></script>
<script>
$('#register').click(()=>{
const id = $('#id').val();
const password = $('#password').val();
$.ajax({
url : '/member/register'
, method : 'POST'
, data : {id : id, password : password}
}).done(result) => {
console.log('SUCCESS!!');
});
});
</script>
var router = require('express').Router(); // 나는 router를 사용했다.
const bcrypt = require('bcrypt');
const saltRounds = 10;
router.post('/register', async (req, res) => {
const id = req.body.id;
const password = req.body.password;
bcrypt.hash(password, saltRounds, (err, hashPassword) => {
try {
console.log('bcrypt SUCCESS')
db.collection('login').insertOne({ id : id, password : hashPassword }, (err, result) => {
응답.send('저장완료');
});
} catch {
console.log('bcrypt FAIL')
}
});
});
글 잘 봤습니다.