Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 알고리즘
- SwiftUI
- 아이폰
- 백준
- swagger
- 앱개발
- spring
- 서버개발
- UI
- node
- 회원가입
- Xcode
- db
- database
- API
- Java
- 개발자
- spring boot
- 개발
- mac
- Node.js
- post
- 앱
- 통신
- JavaScript
- Alamofire
- java spring
- IOS
- Swift
- 백엔드
Archives
- Today
- Total
YagSill
node.js crypto-js로 비밀번호 암호화 복호화 하기 본문
728x90
안녕하세요 yagsill 입니다.
백엔드에서 로그인 또는 회원가입 할 때 비밀번호를 DB에 대충 때려넣으면 문제가 생깁니다.
그래서 암호화를 하고 DB에서 가져온 비밀번호를 또 복호화 해서 로그인, 회원가입 처리를 해주어야 하는데 말이죠
crypto-js로 진행해 보겠습니다.
1. 일단 crypto-js 패키지를 깔아주세요
npm install crypto-js
2. 암호화 및 복호화를 진행할 스크립트에 추가해주세요
const cryptojs = require("crypto-js");
const encryptedKey = "암복호화키를 넣어주세용";
3. 암호화, 복호화 기능 따로 분리 해서 함수로 만들어 줍니다.
function encryptPassword(password, encryptedKey) {
var cipherText = cryptojs.AES.encrypt(password, encryptedKey).toString();
return cipherText;
}
function decryptPassword(password, encryptedKey) {
var bytes = cryptojs.AES.decrypt(password, encryptedKey);
var originalText = bytes.toString(cryptojs.enc.Utf8);
return originalText;
}
4. 암호화할 비밀번호 encryptPassword에 넣어주기 / 복호화할 비밀번호 decryptPassword에 넣어주기
※ 회원가입을 진행할 때 DB에 넣는 상황입니다.
var password = encryptPassword('암호화할 데이터', encryptedKey);
이렇게 하고 password를 찍어볼게요.
저의 비밀번호는 1234 로 넣어봤습니다.
U2FsdGVkX1/EVsoQ9MthIx1jPHI/j7C6ZlJRfXspHY8=
암호화가 성공적으로 이루어 졌습니다. 이제 DB에 이 암호화문을 넣어줄께요!
DB에 패스워드가 아주 잘 들어갔습니다.
이제는 로그인을 해보겠습니다.
var password = decryptPassword('복호화 할 데이터', encryptedKey);
이러고 password를 찍어볼까요??
1234
입력했던 비밀번호 1234가 복호화 되어서 보여지게 됩니다.
var originPw = param.user_pw; // 비밀번호 파라미터
var password = decryptPassword('복호화 할 데이터', encryptedKey);
if (originPw != password) {
return res.json({
resultCode: 400,
resultMsg: "비밀번호가 맞지 않습니다.",
});
이런식으로 비밀번호가 틀렸을 때의 상황을 해결할 수 있습니다~
728x90
'node.js' 카테고리의 다른 글
node.js API multer 이미지 업로드 + [postman 사용] (0) | 2023.06.15 |
---|---|
node.js JWT 생성하기 [postman] 사용 (0) | 2023.06.13 |
node.js mybatis-mapper + mysql 연동하기 DB 연동 (0) | 2023.06.11 |
node.js API 만들기 너무 쉬움 get, post [postman] 사용 (0) | 2023.06.11 |
node.js Express 웹 서버 구동하기 (0) | 2023.06.11 |