임베디드 장치에 파일을 전송해야하는 일이 생겼다. AI 에이전트에 전송 스크립트를 요청했다. 그랬더니 파일 유효성 검사를 할 것인지, 한다면 MD5를 사용하는게 어떻겠냐고 했다. 나는 MD5가 뭔지는 정확히 몰랐고, 유효성 검사를 할 때 사용한다는 것 정도만 알고 있었다. 그래서 간단히 알아보기로 했다.
개요
MD5(Message Digest Algorithm 5)는 임의 데이터를 입력받아 128비트(16바이트) 고정 길이의 해시값을 출력하는 암호화 해시 함수이다. 1991년 Ron Rivest가 MD4를 대체할 목적으로 설계했다.
핵심 특성
- 고정 출력: 입력 크기와 무관하게 항상 128비트(32자리 16진수) 출력
- 단방향성: 해시값으로 원본 데이터를 역산 불가
- 결정론적: 같은 입력 -> 항상 같은 해시값
- 눈사태 효과: 입력이 1비트만 바뀌어도 해시값이 완전히 달라짐
파일 검증에서의 활용
파일을 다운로드하거나 전송할 때, 파일이 손상/변조되지 않았는지 확인하는 용도로 쓰인다.
- 배포자가 MD5 계산값을 공개한다.
- 수신자가 파일을 받고 MD5를 계산한 뒤 공개된 값과 비교한다.
주의할 점
MD5는 보안 용도로는 취약하다. 현재는 파일 무결성 검사에서만 사용한다.
Leave a Reply