[JS] crypto-js Hmac MD5 암호화/복호화

He SEO·2022년 2월 24일
0
post-thumbnail

MD5?

MD5(Message-Digestalalgorithm 5)는 128비트 암호화 해시 함수입니다.
특징으로는,

  • 단방향 암호화라서 출력된 해시 값에서 입력값을 도출할 수 없음
  • 같은 입력값이면 출력값이 동일하고, 낮은 확률이지만 다른 입력값에서 동일한 출력값이 나올 수 있음
  • 무결성 검사에 많이 쓰임
  • 설계상의 결함이 발견되어 다른 알고리즘(SHA-1같은)을 사용하기를 권장함

HMAC

Hash based Message Authentication Code의 줄임말 입니다.
특징으로는,

  • MD5, SHA1과 같은 해시 알고리즘을 사용
  • 해시 암호키를 송신자와 수신자가 미리 나눠가지고 사용함
  • 공유하고 있는 키와 원본 메시지를 혼합하여 해시값을 만들고 이를 비교하여 무결성을 확인함

실습 (javascript)

const cryptojs = require("crypto-js");

const message = "show me the money"; //전달할 샘플 메시지 
const key = "gooday"; //암호화에 사용할 샘플 키값
const sign = cryptojs.HmacMD5(message, key).toString();
console.log(sign);

결과

7cb00a06349f2dacdbda92c5f24a662b

요청자가 전달한 해시값과, 수신자가 crypto-js로 생성한 해시값을 비교하여 같다면 정상 메시지입니다.

profile
BACKEND 개발 기록 중. 감사합니다 😘

0개의 댓글