MD5이란?
MD5(Message Digest Algorithm 5)는 128비트(16바이트) 해시 값을 생성하는 널리 사용되는 암호화 해시 함수로, 일반적으로 32자리 16진수로 표현됩니다. 1991년 Ron Rivest가 MD4의 후속작으로 설계했습니다.
주요 특징:
- 결정론적: 동일한 입력은 항상 동일한 해시를 생성
- 빠른 계산: 주어진 입력에 대해 빠르게 계산
- 눈사태 효과: 입력의 작은 변화가 완전히 다른 출력을 생성
- 고정 출력 크기: 입력 크기에 관계없이 항상 128비트 해시를 생성
- 충돌 취약성: 알려진 취약점으로 인해 충돌을 찾는 것이 가능
보안 상태: ⚠️ MD5는 암호학적으로 깨졌으며 보안이 중요한 애플리케이션에서는 사용해서는 안 됩니다. 충돌 공격은 2004년에 증명되었고, 현대 컴퓨팅 파워로 실용적인 충돌 생성이 실현 가능해졌습니다.
일반적인 용도(현재 및 역사적):
- 파일 무결성 검증(보안 비중요)
- 데이터 손상 감지를 위한 체크섬
- MD5가 필요한 레거시 시스템
- 데이터베이스 키 생성(비암호화)
- 일부 오래된 프로토콜 및 시스템
권장 대안:
- 새로운 애플리케이션에는 SHA-256 또는 SHA-3
- 높은 보안 요구사항에는 SHA-512
- 고성능 애플리케이션에는 BLAKE2