반응형
crypto?
- js 내장 모듈.
- 여러 해시 함수를 통한 암호화 기능 제공함
- 전에 스마게 강의에서 사이드 플젝 정도면 SHA-256 사용하면 적당하다고 해서 이거 사용할 것임
utils/createHashedPassword.ts
import crypto from "crypto";
const createHashedPassword = (password: string) => {
return crypto.createHash("sha256").update(password).digest("base64");
};
export default createHashedPassword;
auth.ts
import mysql from "mysql";
import dbconfig from "../config/database";
import express, { Request, Response } from "express";
import createHashedPassword from "../utils/createHashedPassword";
const authRouter = express.Router();
const connection = mysql.createConnection(dbconfig);
authRouter
.route("/register")
.post((req: Request, res: Response) => {
const uid = crypto.randomUUID();
const { email, password } = req.query;
**const hashedPassword = createHashedPassword(password as string);**
connection.query(`INSERT INTO user (uid, email, password) VALUE ('${uid}', '${email}', '${**hashedPassword**}')`, (err, rows) => {
if (err) throw err;
});
...
해싱된 패스워드가 잘 들어감을 확인할 수 있다. (맨위 데이터)

반응형
'Front-End: Web > JavaScript' 카테고리의 다른 글
[js] Map이란? (0) | 2023.04.22 |
---|---|
[js]tilde(~)와 double tilde(~~) (0) | 2022.12.06 |
[js] 변수를 사용하기 전에 꼭 알아야할 "TDZ(Temporal Dead Zone)" (0) | 2022.11.29 |
[js] 객체 복사: Object.assign vs. object spread (0) | 2022.11.28 |
[JavaScript] eval() 함수를 사용하지 마세요! eval() is evil! (0) | 2022.11.27 |