문자열 해시 일괄 계산・비교|MD5・SHA-1・SHA-256・SHA-512・SHA-3・BCrypt・Argon2id

문자열 하나만 입력하면 MD5・SHA-1・SHA-256・SHA-512・SHA-3・BCrypt・Argon2id 해시값을 동시에 계산하여 나란히 비교할 수 있습니다. 모든 계산은 브라우저 안에서 완료되며 입력 내용은 서버로 전송되지 않습니다.

일괄 해시 계산이란

이 도구는 문자열 하나만 입력하면 MD5・SHA-1・SHA-256・SHA-512・SHA-3・BCrypt・Argon2id, 총 7종류의 해시 알고리즘 계산 결과를 동시에 표시하여 나란히 비교할 수 있는 도구입니다. 알고리즘마다 페이지를 전환하며 같은 문자열을 다시 입력할 필요 없이, 출력의 길이와 형식 차이를 한눈에 확인할 수 있습니다.

모든 계산은 브라우저 내 JavaScript/WebAssembly에서 완료되며, 입력한 문자열이나 계산된 해시값이 서버로 전송되는 일은 없습니다. BCrypt와 Argon2id는 랜덤한 솔트를 사용하므로 실행할 때마다 결과가 달라지지만, 이는 사양대로의 올바른 동작입니다.

일괄 해시 계산 사용 방법

  1. 문자열을 입력합니다 해시로 변환할 문자열을 입력란에 입력합니다.
  2. 「일괄 계산하기」를 클릭합니다 버튼을 누르면 7가지 알고리즘의 계산이 동시에 실행됩니다.
  3. 결과를 비교합니다 표에서 알고리즘별 출력을 확인하고 길이와 형식의 차이를 비교합니다.
  4. 필요한 해시값을 복사합니다 각 행의 복사 버튼으로 해시값을 클립보드에 저장할 수 있습니다.

더 잘 활용하기 위한 팁

  • 알고리즘별로 페이지를 일일이 전환하지 않고도 같은 입력에 대한 7가지 해시값을 한 번에 비교할 수 있습니다.
  • MD5・SHA-1은 계산 속도는 빠르지만 충돌 저항성이 낮아 현재는 비밀번호 저장 용도로는 권장되지 않습니다. 파일 변조 감지 등 가벼운 용도로만 사용하세요.
  • 비밀번호 저장 용도로는 솔트를 사용하고 계산 비용을 조절할 수 있는 BCrypt나 Argon2id 사용이 현재 권장됩니다.
  • 각 해시값 옆의 버튼으로 원클릭 복사할 수 있어 여러 알고리즘에서의 동작 확인이나 문서 작성에 편리합니다.

활용 시나리오

레거시 시스템의 해시값을 대조합니다

기존 시스템이 MD5나 SHA-1로 저장한 값과 새 구현에서 다시 계산한 값이 일치하는지 확인하고 싶을 때 사용합니다.

신규 프로젝트에서 알고리즘을 선정합니다

보안 요구사항에 따라 어떤 알고리즘을 채택할지 실제 출력을 비교하며 검토하는 상황에 적합합니다.

여러 형식의 체크섬을 한 번에 준비합니다

배포 파일의 무결성 확인을 위해 여러 해시 형식을 요구받은 경우, 한 번의 입력으로 모두 얻을 수 있습니다.

암호학 학습・교육 자료로 사용합니다

같은 입력에서 생성되는 각 알고리즘의 출력을 비교하며 해시 함수의 차이를 체험적으로 배울 수 있습니다.

용어집

솔트(Salt)
해시 계산 전에 입력에 추가하는 랜덤 값입니다. 같은 입력이라도 매번 다른 해시값이 되어 레인보우 테이블 공격을 방지합니다.
충돌 저항성
서로 다른 입력에서 같은 해시값이 생성되기 어려운 성질입니다. MD5・SHA-1은 이미 실용적인 충돌이 발견되어 낮은 것으로 평가됩니다.
키 스트레칭
해시 계산을 의도적으로 반복・저속화하여 무차별 대입 공격을 어렵게 만드는 기법입니다. BCrypt・Argon2의 핵심 원리입니다.
메모리 하드니스
계산에 일정량의 메모리가 필요한 성질입니다. GPU 등 전용 하드웨어를 이용한 병렬 무차별 대입 공격에 대한 저항력을 높입니다. Argon2의 특징입니다.
레인보우 테이블
대량의 평문과 해시값 대응표를 미리 계산해 두고, 해시값에서 원래 문자열을 빠르게 역산하는 공격 기법입니다.

자주 묻는 질문

아니요. 모든 계산은 브라우저 내 JavaScript/WebAssembly에서 완료되며, 입력 문자열이나 계산된 해시값이 서버로 전송되거나 저장되는 일은 없습니다.

두 알고리즘 모두 계산할 때마다 새로운 랜덤 솔트를 생성하여 해시값에 포함시키기 때문입니다. 같은 입력이라도 매번 다른 결과가 나오지만, 이는 사양대로의 올바른 동작이며 레인보우 테이블 공격을 방지하는 중요한 장치입니다.

현재는 Argon2id가 최우선으로 권장되며, 그다음으로 BCrypt가 널리 사용됩니다. MD5・SHA-1・SHA-256・SHA-512・SHA-3은 계산 속도가 너무 빨라 단독으로 비밀번호를 저장하는 데는 적합하지 않습니다.

비밀번호 저장이나 전자서명처럼 보안이 중요한 용도에는 권장되지 않습니다. 다만 파일 무결성 확인(의도치 않은 손상 감지)처럼 악의적인 공격을 상정하지 않는 가벼운 용도에서는 현재도 사용되고 있습니다.

BCrypt의 비용 계수나 Argon2의 메모리・반복 횟수・병렬도를 조정하고 싶다면 각각 전용 BCrypt 해시・Argon2 해시 계산 도구를 이용해 주세요.
툴군

여담 ― 왜 해시 함수는 용도에 따라 다르게 사용해야 할까요

MD5・SHA-1・SHA-256・SHA-512・SHA-3은 모두 "암호학적 해시 함수"라는 같은 분류에 속하지만, 설계된 시대와 목적이 다르기 때문에 안전성 수준에는 큰 차이가 있습니다. MD5(1992년)와 SHA-1(1995년)은 이미 실용적인 충돌 공격(서로 다른 입력으로 같은 해시값을 의도적으로 만들어내는 공격)이 입증되어 디지털 인증서와 전자서명 분야에서는 사용이 금지되었습니다. 반면 SHA-256・SHA-512・SHA-3은 현재도 안전한 것으로 간주되어 블록체인이나 TLS 인증서 등 높은 보안이 요구되는 곳에서 널리 사용됩니다.

다만 SHA-256처럼 "안전한" 해시 함수라도 비밀번호 저장에는 적합하지 않습니다. 이러한 함수들은 의도적으로 빠르게 계산되도록 설계되어 있어, 공격자가 무차별 대입 공격이나 미리 계산된 레인보우 테이블 공격을 시도할 경우 대량의 비밀번호 후보를 짧은 시간에 시도할 수 있습니다. 이에 반해 BCrypt와 Argon2는 "의도적으로 느리게" 설계되어 있으며, 비용 파라미터(BCrypt의 라운드 수, Argon2의 메모리・반복 횟수)를 조정함으로써 하드웨어 성능 향상에 맞춰 계산 비용을 계속 높일 수 있다는 점이 근본적으로 다릅니다.

Argon2는 2015년 패스워드 해싱 경쟁(Password Hashing Competition)에서 우승한 알고리즘으로, 계산에 필요한 메모리양을 지정할 수 있는 "메모리 하드니스"가 특징입니다. GPU나 ASIC 등 병렬 계산에 특화된 하드웨어는 고속 연산에는 뛰어나지만 탑재 메모리에는 한계가 있어, 메모리를 대량으로 소비하는 Argon2는 전용 하드웨어를 이용한 무차별 대입 공격에 대한 저항력이 BCrypt보다 높은 것으로 평가되며, OWASP도 이를 최우선으로 권장하고 있습니다.