MD5 해시 계산기란?
MD5 해시 계산기는 입력한 텍스트의 128비트 MD5 메시지 다이제스트를 계산해 줍니다. MD5(Message-Digest Algorithm 5, RFC 1321에 정의)는 길이에 상관없이 어떤 입력이든 받아서 고정된 32자리 16진수 지문(fingerprint)으로 변환합니다. 같은 입력은 언제나 같은 해시를 만들어 내지만, 글자 하나만 바꿔도 전혀 다른 결과가 나오는 것이 특징입니다.
사용 방법
입력란에 텍스트를 직접 입력하거나 붙여넣은 뒤 실행하세요. 계산기는 입력한 텍스트를 UTF-8 바이트로 인코딩한 다음 MD5 알고리즘을 적용해, 소문자 16진수 다이제스트와 함께 문자 수, UTF-8 바이트 크기를 보여 줍니다. 입력란을 비워 두면 널리 알려진 빈 문자열 해시 값을 확인할 수 있습니다.
계산 원리
MD5는 머클–담고르(Merkle–Damgård) 구조를 사용합니다. 먼저 메시지 뒤에 0x80 바이트 하나를 붙이고, 전체 길이가 64로 나눈 나머지 56바이트가 될 때까지 0을 채웁니다. 마지막으로 원래 비트 길이를 64비트 리틀엔디언 값으로 덧붙입니다. 이렇게 패딩된 메시지를 512비트 블록으로 나눈 뒤, 각 블록을 4개 라운드에 걸쳐 64번의 연산으로 처리하는데, 이때 비선형 함수와 sin으로 유도한 단계별 상수, 그리고 왼쪽 순환 이동(left-rotation)을 사용합니다. 네 개의 32비트 상태 워드(A, B, C, D)는 고정된 초기값으로 시작해 블록마다 갱신되며, 최종 값을 리틀엔디언으로 이어 붙인 것이 바로 다이제스트입니다.
실제 예시
빈 문자열("")은 0바이트입니다. 패딩을 거치면 512비트 블록 하나가 되고, MD5는 d41d8cd98f00b204e9800998ecf8427e를 반환합니다. 텍스트 "hello"(5바이트)는 5d41402abc4b2a76b9719d911017c592로 해싱됩니다.
자주 묻는 질문
MD5는 안전한가요? 아닙니다. MD5는 암호학적으로 이미 깨진 알고리즘으로, 충돌(collision)을 쉽게 만들어 낼 수 있습니다. 비밀번호나 전자서명에는 절대 쓰지 말고, 체크섬이나 보안과 무관한 지문 용도로만 사용하세요.
바이트 수가 문자 수와 다른 이유는 무엇인가요? 영문(ASCII)이 아닌 문자는 UTF-8에서 1바이트보다 많은 공간을 차지합니다. 예를 들어 이모지 3개짜리 문자열도 실제로는 여러 바이트가 될 수 있습니다.
대소문자 구분이 결과에 영향을 주나요? 네. "Hello"와 "hello"는 완전히 다른 해시를 만들어 냅니다.