본문 바로가기

Front-End: Web/JavaScript

crypto로 비밀번호 암호화하기

반응형

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;
    });

...

 

해싱된 패스워드가 잘 들어감을 확인할 수 있다. (맨위 데이터)

반응형