MD5란?

MD5(Message Digest Algorithm 5)는 128비트 해시 값을 생성하는 널리 사용되는 암호화 해시 함수입니다. MD5의 정의, 작동 원리, 사용해야 할 때와 피해야 할 때를 알아보세요.

Definition
Message Digest Algorithm 5

MD5는 크기에 상관없는 입력을 받아 고정된 128비트(16바이트) 해시 값을 생성하는 암호화 해시 함수로, 보통 32자리 16진수 문자열로 표현됩니다. 1991년 Ronald Rivest가 설계했습니다. MD5는 단방향 함수로, 해시 값으로부터 원본 입력을 역공학적으로 추출할 수 없습니다.

MD5 작동 원리

MD5는 입력을 512비트 블록으로 처리하여 128비트 다이제스트를 출력합니다: • "hello" → 5d41402abc4b2a76b9719d911017c592 • "Hello" → 8b1a9953c4611296a827abf8c47804d7 • 단 하나의 문자 변경만으로도 완전히 다른 해시가 생성됩니다 이 "눈사태 효과"는 MD5를 데이터 손상 감지에 유용하게 만듭니다 — 두 파일의 MD5가 같다면 거의 확실하게 동일한 파일입니다.

MD5 보안 취약점

MD5는 암호학적으로 손상된 것으로 간주됩니다: • 충돌 공격 — 서로 다른 두 입력이 같은 해시를 생성하는 사례가 입증됨 • 레인보우 테이블 공격 — 사전 계산된 조회 테이블로 일반적인 해시를 역산 가능 • GPU 크래킹 — 초당 수십억 개의 MD5 해시를 계산 가능 MD5는 절대 사용하면 안 됩니다: • 비밀번호 저장 (bcrypt, scrypt, Argon2 사용) • 디지털 서명이나 인증서 • 보안이 중요한 애플리케이션

MD5가 여전히 사용되는 곳

보안 결함에도 불구하고, MD5는 비보안 목적으로 여전히 유용합니다: • 파일 무결성 확인 — 다운로드된 파일의 손상 여부 확인 • 체크섬 — 백업 시스템에서 파일 버전 비교 • 캐싱 — 콘텐츠에서 캐시 키 생성 • 중복 제거 — 중복 파일 신속 식별 • 레거시 시스템 — 쉽게 업데이트할 수 없는 구형 시스템에서 여전히 사용

Try it yourself

UUID 생성하기

MD5에 대하여

MD5는 1992년 MD4의 개선판으로 도입되었습니다. 1990년대에 디지털 서명과 SSL 인증서에 널리 채택되었습니다. 2004년 연구자들이 실용적인 충돌 공격을 증명했고, 2008년에는 MD5 충돌을 이용해 위조 SSL 인증서를 만들 수 있음이 입증되었습니다. 오늘날 보안 용도로는 사용이 중단되었지만, 여전히 컴퓨팅에서 가장 널리 쓰이는 해시 함수 중 하나입니다.

FAQ

MD5는 무엇의 약자인가요?
MD5는 Message Digest Algorithm 5의 약자입니다.
MD5는 비밀번호에 안전한가요?
아닙니다. MD5는 계산이 매우 빠르기 때문에 무차별 대입 공격이나 레인보우 테이블로 쉽게 크래킹할 수 있습니다. 비밀번호는 bcrypt, scrypt, Argon2처럼 그 목적에 맞게 설계된 느린 해시 알고리즘을 사용하세요.
MD5 해시의 길이는 얼마인가요?
MD5 해시는 항상 128비트(16바이트)이며, 16진수로 인코딩하면 정확히 32자리입니다.

관련 도구