#

MD5 해시 rfc 1321

입력 문자열의 MD5 해시 값(32자 16진수)을 계산합니다. 체크섬 용도로만 사용하고 보안 목적에는 사용하지 마십시오.

case
INPUTmessage
0 lines 0 chars
1
OUTPUThashes
32 hex chars
computed via crypto-js · client-side only
도구 설명

이 도구가 하는 일

MD5는 임의 길이의 입력을 128비트(16바이트) 고정 길이 값으로 변환하는 해시 함수입니다. 결과는 보통 32자리 16진수로 표기합니다. 같은 입력은 항상 같은 결과를 내고, 입력이 한 글자만 달라져도 결과가 완전히 달라지며, 결과에서 원본을 되돌릴 수 없다는 특징이 있습니다.

다만 MD5는 충돌 저항성이 깨진 알고리즘입니다. 서로 다른 두 입력이 같은 해시 값을 갖도록 의도적으로 만들어내는 방법이 이미 알려져 있고, 일반적인 장비로도 짧은 시간에 계산할 수 있습니다. 따라서 비밀번호 저장, 전자 서명, 파일 무결성 검증 같은 보안이 필요한 용도에는 사용하면 안 됩니다.

그럼에도 MD5가 여전히 쓰이는 곳은 보안과 무관한 영역입니다. 캐시 키 생성, 중복 데이터 판별, 파일 전송 후 단순 오류 확인, 레거시 시스템과의 호환 같은 경우에는 빠르고 짧은 해시라는 장점 때문에 계속 사용됩니다.

언제 사용하나요

레거시 시스템이 MD5로 저장한 값과 비교해야 할 때, 파일이나 문자열의 중복 여부를 빠르게 판단할 때, 캐시 키나 임시 식별자를 만들 때, 다운로드한 파일의 체크섬이 배포처가 안내한 값과 일치하는지 확인할 때 사용합니다.

입력과 출력 예시

입력 hello
출력 5d41402abc4b2a76b9719d911017c592

같은 입력은 어떤 환경에서 계산해도 항상 같은 값이 나옵니다.

입력 Hello
출력 8b1a9953c4611296a827abf8c47804d7

첫 글자의 대소문자만 달라져도 결과 전체가 완전히 바뀝니다.

입력 (빈 문자열)
출력 d41d8cd98f00b204e9800998ecf8427e

빈 값도 고정 길이 해시를 가집니다. 이 값이 나왔다면 입력이 비어 있었다는 뜻입니다.

주의사항

비밀번호를 MD5로 저장하는 것은 위험합니다. 흔한 비밀번호의 MD5 값은 이미 표로 정리되어 있어 검색만으로 원문을 알아낼 수 있습니다. 비밀번호에는 bcrypt, scrypt, Argon2처럼 의도적으로 느리게 설계된 알고리즘을 사용해야 합니다. 보안이 목적이라면 최소한 SHA-256 이상을 사용하고, 무결성 검증이 필요하면 HMAC을 사용하십시오. 또한 해시는 되돌릴 수 없으므로 이 도구로 MD5 값을 원본으로 복호화할 수는 없습니다.

자주 묻는 질문

MD5를 원본으로 되돌릴 수 있나요?

해시 함수는 단방향이라 수학적으로 되돌릴 수 없습니다. 다만 자주 쓰이는 문자열은 미리 계산된 표로 조회가 가능하므로, 짧고 흔한 값은 사실상 노출된 것과 같습니다.

아직도 MD5를 써도 되나요?

캐시 키, 중복 판별, 단순 오류 확인처럼 보안과 무관한 용도라면 문제없습니다. 인증, 서명, 비밀번호 저장에는 사용하면 안 됩니다.

Copied