MD5

MD5(Message-Digest Algorithm 5)는 1991년 로널드 리베스트(Ronald Rivest)에 의해 개발된 해시 함수이다. MD5는 입력 데이터(메시지)를 고정된 크기의 해시값으로 변환하는 알고리즘으로, 일반적으로 128비트(16바이트) 길이의 해시값을 생성한다. MD5는 주로 데이터 무결성을 검증하고 파일의 유일한 식별자를 생성하는 데 사용된다.

MD5는 입력 데이터의 작은 변화에도 불구하고 해시값이 크게 변하는 성질을 가져 충돌 회피(collision resistance) 특성을 갖추고 있다. 이론적으로 입력값이 서로 다른 두 데이터에 대해 동일한 해시값을 생성하는 현상을 '충돌'이라고 하며, MD5는 이 충돌을 최소화하도록 설계되었다. 그러나 시간이 지남에 따라 여러 연구 결과와 해킹 기법이 발견되면서, MD5는 보안성이 약화된 것으로 평가받고 있다. 특히 2004년부터 시작된 연구에서는 MD5의 충돌 공격이 가능하다는 사실이 입증되었고, 이로 인해 MD5는 더 이상 안전한 해시 알고리즘으로 간주되지 않는다.

현재 MD5는 데이터의 무결성을 확인할 수 있는 기초적인 방법으로는 여전히 사용되지만, 보안이 중요한 상황에서는 SHA-256과 같은 더 안전한 해시 함수로 대체될 것이 권장된다. MD5는 파일 검증, 메시지 인증, 데이터베이스 키 생성 등 다양한 분야에서 여전히 활용되고 있지만, 보안성이 요구되는 곳에서는 피해야 한다.