SilvenLEAF의 bcrypt를 사용한 가장 간단한 암호 해싱 방법
10225 단어 silvenleafwebdevjavascriptnode
BCRYPT를 사용하는 가장 간단한 방법
비밀번호 해시
//it creates the hashed password. Save this hashedPassword on your DB
const hashedPassword = bcrypt.hashSync(yourPasswordFromSignupForm, bcrypt.genSaltSync());
이제 이 hashedPassword를 데이터베이스에 저장하십시오.
비밀번호 확인
const doesPasswordMatch = bcrypt.compareSync(yourPasswordFromLoginForm, yourHashedPassword)
doPasswordMatch는 부울입니다. 암호가 일치하면 true이고, 그렇지 않으면 false입니다.
BCRYPT 사용을 위한 전체 가이드
먼저 터미널에 이것을 입력하여 bcryptjs 패키지를 설치하십시오npm install bcryptjs
이제 사용할 준비가 되었습니다.
0단계.
사용자 모델을 만듭니다. 이 경우 우리는 간단하게 유지할 것입니다. 우리 모델에는 이메일과 비밀번호 필드만 있습니다.
1단계(BCRYPT를 사용하여 가입을 위해 DB에 해시된 비밀번호 저장).
const router = require('express').Router();
const User = require('YOUR_USER_MODEL');
const bcrypt = require('bcryptjs')
router.post('/signup', async (req, res)=>{
// these emailFromSignupForm and passwordFromSignupForm are coming from your frontend
const { emailFromSignupForm, passwordFromSignupForm } = req.body;
//creating a new user on our database
const newUser = await User.create({
email: emailFromSignupForm,
hashedPassword: bcrypt.hashSync(passwordFromSignupForm, bcrypt.genSaltSync()),
});
//sending back the newUser to the frontEND
res.json(newUser);
})
module.exports = router;
이것은 bcrypt를 사용하여 비밀번호를 해시하고 해시된 비밀번호를 저장하는 방법에 대한 데모 코드입니다.
2단계(BCRYPT를 사용하여 로그인 암호 비교).
const router = require('express').Router();
const User = require('YOUR_USER_MODEL');
const bcrypt = require('bcryptjs')
router.post('/login', async (req, res)=>{
// these emailFromLoginForm and passwordFromLoginForm are coming from your frontend
const { emailFromLoginpForm, passwordFromLoginForm } = req.body;
//find a user from the database with your emailFromLoginForm
const existingUser = await User.findOne({ email: emailFromLoginForm });
//if no user found
if(!existingUser) return res.json({ msg: `No account with this email found` })
//if the user is found, I mean if the user is on our database, compare the passwordFromLoginForm with the hashedPassword on our database to see if the passwords match (bcrypt will do this for us)
const doesPasswordMatch = bcrypt.compareSync(passwordFromLoginForm, existingUser.hashedPassword); //it wii give you a boolean, so the value of doesPasswordMatch will be a boolean
//if the passwords do not match
if(!doesPasswordMatch) return res.json({ msg: `Passwords did not match` });
//if the passwords match, send back the existingUser to the frontEND
res.json(existingUser);
}
})
module.exports = router;
이것은 bcrypt를 사용하여 데이터베이스에 저장된 hashedPassword와 passwordFromYourLoginForm을 비교하고 확인하는 방법에 대한 데모 코드입니다.
이것은 bcrypt를 사용하는 방법에 대한 데모일 뿐입니다. 도움이 되기를 바랍니다.
질문이 있거나 막힌 경우
언제든지 연락주세요. LinkedIN 또는 Twitter(
).
나에 대해 더 알고 싶다면 여기가 내 포트폴리오 웹사이트SilvenLEAF.github.io
나는 당신의 친구가 되고 싶습니다, 저에게 연락 주시기 바랍니다!
다음 블로그
다음 블로그 날짜
const router = require('express').Router();
const User = require('YOUR_USER_MODEL');
const bcrypt = require('bcryptjs')
router.post('/signup', async (req, res)=>{
// these emailFromSignupForm and passwordFromSignupForm are coming from your frontend
const { emailFromSignupForm, passwordFromSignupForm } = req.body;
//creating a new user on our database
const newUser = await User.create({
email: emailFromSignupForm,
hashedPassword: bcrypt.hashSync(passwordFromSignupForm, bcrypt.genSaltSync()),
});
//sending back the newUser to the frontEND
res.json(newUser);
})
module.exports = router;
const router = require('express').Router();
const User = require('YOUR_USER_MODEL');
const bcrypt = require('bcryptjs')
router.post('/login', async (req, res)=>{
// these emailFromLoginForm and passwordFromLoginForm are coming from your frontend
const { emailFromLoginpForm, passwordFromLoginForm } = req.body;
//find a user from the database with your emailFromLoginForm
const existingUser = await User.findOne({ email: emailFromLoginForm });
//if no user found
if(!existingUser) return res.json({ msg: `No account with this email found` })
//if the user is found, I mean if the user is on our database, compare the passwordFromLoginForm with the hashedPassword on our database to see if the passwords match (bcrypt will do this for us)
const doesPasswordMatch = bcrypt.compareSync(passwordFromLoginForm, existingUser.hashedPassword); //it wii give you a boolean, so the value of doesPasswordMatch will be a boolean
//if the passwords do not match
if(!doesPasswordMatch) return res.json({ msg: `Passwords did not match` });
//if the passwords match, send back the existingUser to the frontEND
res.json(existingUser);
}
})
module.exports = router;
2020년 11월 3일, 4일, 5일, FETCH API 시리즈
2020년 11월 6일, 비동기 및 대기
이 블로그가 도움이 되셨다면,
좋아요와 공유 부탁드려요,
그것은 나에게 많은 의미가 있습니다. 감사
Reference
이 문제에 관하여(SilvenLEAF의 bcrypt를 사용한 가장 간단한 암호 해싱 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://dev.to/silvenleaf/password-hashing-with-bcrypt-easiest-explanation-5gpg
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(SilvenLEAF의 bcrypt를 사용한 가장 간단한 암호 해싱 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/silvenleaf/password-hashing-with-bcrypt-easiest-explanation-5gpg텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)