CodeKitHub
생성기 도구

MD5 암호화/복호화 온라인

마지막 업데이트:

많은 사람이 'MD5 복호화' 도구를 찾지만, MD5는 암호화가 아니라 단방향 해시라서 애초에 복호화할 대상이 없습니다. 이 도구는 실제로 가능한 부분, 즉 어떤 텍스트든 32자리 MD5 해시로 즉시 변환하는 작업을 브라우저 안에서 전부 처리해서, 데이터를 검증하거나 이미 알고 있는 해시값과 비교해볼 수 있게 해줍니다.

MD5 해시

MD5는 단방향 해시이므로 원본 텍스트로 되돌릴 수 없습니다.

이 도구는 무엇인가요?

MD5("Message Digest 5")는 단어, 비밀번호, 파일 전체 등 어떤 입력이든 받아서 128비트 고정 길이의 지문을 만들어내며, 이는 32자리 16진수 문자열로 표현됩니다. 같은 입력은 항상 같은 해시를 만들고, 단 한 글자만 바뀌어도 전혀 다른 해시가 나옵니다.

"암호화"라는 단어가 MD5에 자주 붙지만 엄밀히 말하면 틀린 표현입니다. 암호화는 올바른 키가 있으면 되돌릴 수 있지만, 해싱은 애초에 되돌릴 수 없습니다. 인터넷에서 보이는 'MD5 복호화' 서비스는 실제로 수학적으로 역산하는 게 아니라, 흔한 비밀번호나 단어를 미리 계산해둔 거대한 표에서 여러분의 해시값을 검색할 뿐이며, 원래 텍스트가 우연히 그 표에 있을 때만 성공합니다.

MD5는 1992년 론 리베스트(Ron Rivest)가 RFC 1321로 발표했습니다. 보안 용도로는 암호학적으로 취약하다고 판명되었지만(충돌을 의도적으로 만들어낼 수 있음), 보안이 중요하지 않은 체크섬, 캐시 키, 중복 제거 용도로는 여전히 널리 쓰입니다.

왜 사용해야 할까요?

  • MD5 해시를 생성해 파일이나 문자열이 실수로 변경되지 않았는지 확인할 수 있습니다.
  • 이미 알고 있는 MD5 값과 비교해 무결성을 확인할 수 있습니다.
  • 결정론적인 캐시 키나 중복 제거용 ID를 만들 수 있습니다.
  • MD5 해시를 '복호화'하는 게 실제로 왜 불가능한지 명확하게 이해할 수 있습니다.
  • 100% 로컬 처리: 입력한 내용은 브라우저 안에서만 해시되고 업로드되지 않습니다.

사용 방법

  1. 입력창에 텍스트를 입력하거나 붙여넣으세요.
  2. "MD5 생성" 버튼을 클릭하세요.
  3. 32자리 해시 결과를 확인하세요(대문자가 필요하면 "대문자 출력"을 체크하세요).
  4. "복사" 버튼으로 해시를 복사하거나, 이미 가지고 있는 해시와 비교하는 데 사용하세요.

예시

입력

hello

결과

5d41402abc4b2a76b9719d911017c592

MD5는 결정론적입니다: "hello"라는 텍스트는 어떤 도구를 쓰든 매번 정확히 이 해시값을 만들어냅니다.

"암호화"와 "해시", 용어가 왜 중요한가

암호화와 해싱은 서로 다른 문제를 해결하는 기술이며, 이 둘을 혼동하면 실제 보안 사고로 이어질 수 있습니다. 암호화는 키를 사용해 데이터를 되돌릴 수 있게 변환합니다 — 키로 암호화하고 같은(또는 짝을 이루는) 키로 복호화하면 원본이 나옵니다. 해싱은 키 없이 데이터를 한 방향으로만 변환합니다 — 해시를 원래 입력으로 되돌리는 연산은 애초에 존재하지 않습니다.

MD5는 암호(cipher)가 아니라 해시 함수입니다. "MD5 암호화"라는 표현이 일상적으로 흔히 쓰이지만, 이는 잘못된 기대를 심어줍니다 — 정당한 'MD5 복호화' 연산은 존재하지 않습니다. 그런 걸 제공한다고 광고하는 것은 조회표 방식(이미 알려진 흔한 입력값에만 통함)이거나 아예 작동하지 않는 것입니다.

MD5를 써도 괜찮은 경우

  • 다운로드한 파일을 실행하기 전에 배포자가 제공한 체크섬과 일치하는지 확인할 때.
  • URL이나 쿼리 문자열로부터 결정론적인 캐시 키를 생성할 때.
  • 전체 텍스트를 비교하는 대신 각 레코드를 해시하고 그 해시를 비교해 중복을 제거할 때.
  • 두 파일이 바이트 단위로 완전히 동일한지 diff 없이 빠르게 확인할 때.

MD5를 아예 피해야 하는 경우

비밀번호, 전자서명, 또는 공격자가 위조된 값을 일치시켜 이득을 볼 수 있는 어떤 용도로도 MD5를 절대 사용하지 마세요. 충돌을 의도적으로 만들어낼 수 있고, 짧거나 흔한 입력값의 솔트 없는 MD5 해시는 조회표로 역산될 수 있기 때문에, 이런 상황에서 MD5는 실질적인 보안을 전혀 제공하지 못합니다. 비밀번호에는 bcrypt, scrypt, Argon2를 사용하세요. 위변조 방지가 중요한 서명이나 무결성 검증에는 SHA-256 이상을 사용하세요.

자주 묻는 질문

MD5 해시를 원래 텍스트로 복호화할 수 있나요?

아니요 — 해싱은 원래부터 단방향으로 설계되어 있어서, 해시값만으로 원본을 계산해낼 수 없습니다. 'MD5 복호화' 사이트들은 흔히 쓰이는 입력값을 미리 계산해둔 거대한 표에서 해시를 검색할 뿐이라, 고유하거나 긴 입력값은 절대 역산할 수 없습니다.

그럼 'MD5 복호화' 웹사이트는 실제로 뭘 하는 건가요?

흔한 단어, 이름, 유출된 비밀번호를 MD5 해시값과 매핑한 거대한 데이터베이스를 관리하다가 검색만 해줍니다. 원래 텍스트가 그 데이터베이스에 없으면(단순하지 않은 텍스트라면 거의 항상 그렇습니다) 그냥 결과를 찾지 못합니다.

MD5로 비밀번호를 저장해도 안전한가요?

아니요, 절대 안 됩니다. MD5는 무차별 대입 공격에 매우 취약하고 알려진 충돌 공격도 존재하며, 앞서 말한 조회표 방식의 '복호화'가 바로 솔트 없는 MD5 비밀번호 저장 방식을 깨는 공격 그 자체입니다. 비밀번호에는 bcrypt, scrypt, Argon2를 사용하세요.

같은 텍스트인데 다른 도구에서는 왜 다른 해시가 나오나요?

대부분 눈에 안 보이는 차이 때문입니다: 끝에 붙은 줄바꿈이나 공백, 줄바꿈 방식 차이(\r\n vs \n), 또는 텍스트 인코딩 차이입니다. 바이트 단위로 완전히 동일한 입력은 언제나 동일한 MD5 해시를 만들어냅니다.

입력한 텍스트가 해시 계산을 위해 서버로 전송되나요?

아니요. MD5 해시는 브라우저 안에서 자바스크립트로 직접 계산되며, 입력한 내용은 어디로도 전송되지 않습니다.

관련 도구