본문으로 건너뛰기
yutils
예시

입력

yutils

출력 (MD5 hex)

5b9c8d3e2a1f4b7d6e8c3a5b9d2f1c4e

참고

MD5 는 32자 hex 출력. 보안용으로는 깨졌지만 체크섬 · ETag · 캐시 키 등 비보안 용도에는 여전히 유용.

사용법 / 자주 묻는 질문

이런 경우 사용하세요

  • 파일 체크섬 (보안 목적 X — 다운로드 무결성 정도)
  • Gravatar · ETag · 캐시 키 생성
  • legacy 시스템 · API 와의 MD5 호환
  • 데이터베이스 row 의 변경 감지용 일관된 short hash
  • MD5 가 왜 깨졌는지 학습 — 같은 hash 의 두 입력 만들기 (collision)

자주 묻는 질문

Q.MD5 는 정말 깨진 건가요?
A.예. 1996년 이론 약점, 2004년 실제 충돌 공격, 2008년 디지털 서명 위조까지 시연됐습니다. 보안용으로는 절대 쓰면 안 됩니다 — 비밀번호 저장 · TLS 인증서 · 디지털 서명 등.
Q.그런데 왜 아직 쓰나요?
A.빠르고 짧기 때문입니다 (16바이트, 32 hex). 보안과 무관한 ETag · cache key · checksum 에는 여전히 유효. AWS S3 도 ETag 에 MD5 를 사용해요.
Q.Gravatar 가 MD5 를 쓰는 게 안전한가요?
A.Gravatar 는 이메일 → 아바타 매핑 식별자로 MD5 를 사용 — 보안 목적이 아니라 일관된 short identifier 용도. 단, 이메일이 노출되면 동일 hash 로 추적 가능.
재미있는 사실
  • MD5 는 1991년 Ronald Rivest 가 MD4 의 약점을 보완해 만들었고 RFC 1321 로 표준화됐습니다. 'MD' 는 'Message-Digest' 의 약자 — Rivest 의 hash 시리즈는 MD2/MD4/MD5 그리고 나중에 RC 시리즈로 이어졌어요.

    RFC 1321 (1992)
  • 2004년 산둥대학 Wang Xiaoyun 팀이 MD5 충돌을 분 단위로 만들어내는 차분 공격을 공개했습니다. SHA-1 의 SHAttered(2017) 보다 13년 빨랐고, MD5 가 보안 용도로 폐기되는 결정타가 됐어요. 그 이후 무결성 체크용도로만 살아남았습니다.

    Wang et al. 2004 (IACR ePrint)
  • 2012년 Flame 악성코드는 chosen-prefix MD5 충돌로 Microsoft Terminal Services 의 인증서를 위조해 Windows Update 채널을 가로챘습니다. MD5 충돌이 학술 호기심이 아니라 실제 국가 단위 공격에 사용된 첫 사례 — 패스워드 hash 에 MD5 쓰지 말라는 권고가 '미래 위협' 이 아닌 이유입니다.

    Wikipedia — Flame malware