체크섬이 일치해도 파일의 출처 자체가 안전한지는 별도로 확인해야 합니다.
Ctrl + Enter를 누르면 기본 작업을 실행합니다.
SHA HASH & FILE CHECKSUM
텍스트와 파일이 바뀌지 않았는지 짧고 고유한 해시로 확인합니다.
UTF-8 텍스트 또는 로컬 파일을 SHA-256·SHA-384·SHA-512로 계산하고 HEX와 Base64 형식으로 확인합니다. 배포처가 제공한 예상 체크섬을 붙여넣으면 현재 결과와 일치하는지 바로 비교할 수 있으며 원본 데이터와 파일은 브라우저 밖으로 전송하지 않습니다.
사용 방법
입력부터 결과 활용까지 네 단계로 진행합니다.
- 1입력 방식 선택
텍스트 입력 또는 파일 체크섬 모드를 선택합니다.
- 2SHA 알고리즘 선택
제공받은 체크섬과 같은 SHA-2 알고리즘을 고릅니다.
- 3해시 계산
브라우저에서 원본 데이터를 읽어 고정 길이 결과를 만듭니다.
- 4비교·복사
예상 체크섬과 일치 여부를 확인하거나 결과를 복사합니다.
같은 입력은 같은 해시를 만들고 작은 변경도 완전히 다른 결과를 만듭니다.
암호학적 해시 함수는 길이가 다른 입력을 고정된 길이의 요약값으로 바꿉니다. 파일을 내려받은 뒤 배포자가 공개한 체크섬과 비교하면 전송 중 손상이나 의도하지 않은 변경을 확인할 수 있습니다. 해시는 암호화와 달리 원문으로 되돌리는 용도가 아닙니다.
알고리즘 맞추기비교 대상과 동일한 SHA-256·384·512를 선택해야 합니다.
대소문자 무관HEX 체크섬은 영문 대소문자가 달라도 같은 값으로 비교합니다.
비밀번호 저장 주의단순 SHA 해시만으로 비밀번호를 저장하지 말고 전용 비밀번호 해싱 방식을 사용하세요.
체크섬 검증 예제
동일한 글자가 아니라 동일한 바이트인지 비교합니다
파일을 내려받은 뒤 배포자가 제공한 체크섬과 비교하거나, 시스템 사이에서 텍스트가 바뀌었는지 확인할 수 있습니다. 먼저 SHA-256·SHA-384·SHA-512 중 비교 대상과 같은 알고리즘을 선택하세요. 텍스트 모드는 입력을 UTF-8로 바꾸고, 파일 모드는 파일 바이트 전체를 읽습니다.
줄바꿈 없는 ‘abc’의 SHA-256
입력: abc
HEX: ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad
Base64: ungWv48Bz+pBQUDeXa4iI7ADYaOWF3qctBD/YfIAFa0=
입력은 UTF-8 3바이트, SHA-256 결과는 32바이트입니다. 같은 해시 바이트를 HEX로 쓰면 64자, Base64로 쓰면 패딩을 포함해 44자입니다. 두 줄은 서로 다른 알고리즘의 결과가 아니라 같은 바이트를 다른 형식으로 표시한 것입니다.
HEX 결과의 64글자를 일반 Base64 텍스트 변환기에 넣으면 그 글자 자체를 인코딩하므로 위 Base64 결과와 달라집니다. 이 페이지의 Base64 출력을 그대로 사용하세요.
끝에 줄바꿈 하나를 붙이면 비교가 실패합니다
입력 바이트: 61 62 63 0A (abc 뒤에 LF)
SHA-256: edeaaff3f1774ad2888673770c6d64097e391bc362d7d6fb34982ddf0efd18cb
이 예제는 4바이트의 입력을 계산하면서 예상 체크섬에는 줄바꿈 없는 abc 값을 넣습니다. 화면에 ‘일치하지 않습니다’가 나오는 것이 맞습니다. 터미널에서 줄바꿈을 자동으로 붙인 문자열, 텍스트 편집기의 마지막 개행, 앞뒤 공백이 자주 생기는 차이입니다.
빈 데이터도 고유한 해시 결과가 있습니다
입력: 0바이트 (빈 텍스트)
SHA-256: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
빈 데이터의 해시는 빈 문자열이나 0이 아닙니다. 비어 있는 파일도 같은 알고리즘에서 이 값이 나옵니다. 의도치 않게 이 체크섬이 나왔다면 원본 데이터가 실제로 읽혔는지부터 확인하세요.
파일 비교 순서와 한계
체크섬 일치와 파일의 신뢰성은 따로 확인하세요
- 배포자가 제공한 알고리즘을 맞추세요. SHA-256은 HEX 64자, SHA-384는 96자, SHA-512는 128자입니다. 비교란에는 체크섬 부분만 붙여넣으세요. 파일 이름까지 붙은 터미널 출력 전체는 지원하지 않습니다. HEX는 대소문자를 구분하지 않고 Base64는 구분합니다.
- 파일 모드는 이름보다 내용을 봅니다. 파일 이름만 바꾸면 바이트는 같아 체크섬도 같습니다. 파일 내부의 메타데이터를 다시 저장하거나 압축을 다시 하면 실제 바이트가 바뀔 수 있습니다. 압축 파일과 압축을 푼 파일을 혼동하지 마세요.
- 텍스트와 파일의 바이트 조건을 맞추세요. UTF-8 BOM, CRLF와 LF, 겉모양이 같은 한글의 유니코드 표현은 차이를 만듭니다. 입력란의 줄바꿈 정규화까지 피해서 원본 파일을 비교하려면 파일 모드를 사용하세요.
- 원본과 기준 체크섬의 출처를 확인하세요. 일치는 계산한 해시가 같다는 뜻입니다. 악성 코드 여부나 배포자의 신원을 판정하지 않으며, 파일과 체크섬이 함께 바뀌었는지도 알 수 없습니다.
텍스트는 JavaScript 문자열 길이 기준 500만 단위, 파일은 100MiB(104,857,600바이트)까지 받습니다. 파일을 메모리에 한 번에 읽으므로 기기 상태에 따라 처리 시간이 달라집니다. 큰 파일을 임의로 나눠 각각 계산한 해시를 이어 붙여도 원본 전체의 해시가 되지 않습니다.
계산 중 입력·파일·알고리즘을 바꾸면 이전 작업 결과를 표시하지 않습니다. 변경된 내용으로 다시 계산하세요. SHA 체크섬은 암호화나 전자서명, 비밀번호 저장을 위한 전용 해싱 기능을 대신하지 않습니다.
계산 API와 메모리 처리 참고: MDN SubtleCrypto.digest. 위 예제값은 줄바꿈 유무를 명시해 별도 SHA 계산과 대조했습니다.
예제를 실행하면 작업 영역의 입력과 설정이 바뀝니다. 내용·동작 확인: · 툴하루
대표적인 사용 사례
실제 작업에서는 이렇게 활용할 수 있습니다.
다운로드 파일 검증
설치 파일과 압축 파일이 배포본과 동일한지 체크섬으로 확인합니다.
문자열 해시 생성
API 테스트와 개발 작업에 사용할 UTF-8 문자열 해시를 만듭니다.
배포 결과 비교
빌드 산출물의 해시를 기록해 파일 변경 여부를 빠르게 확인합니다.
자주 묻는 질문
사용 전 알아두면 좋은 기준을 정리했습니다.
SHA-256과 SHA-512 중 무엇을 선택해야 하나요?
체크섬을 비교할 때는 배포자가 제공한 것과 같은 알고리즘을 선택해야 합니다. 새 용도를 직접 정한다면 호환성이 넓은 SHA-256이 일반적인 기본값입니다.
해시와 Base64 인코딩은 같은 기능인가요?
아닙니다. Base64는 원문을 복원할 수 있는 표현 방식이고, 해시는 입력을 고정 길이 값으로 요약해 일반적으로 원문으로 되돌릴 수 없습니다.
해시가 일치하면 파일이 안전하다는 뜻인가요?
제공받은 체크섬 자체를 신뢰할 수 있다면 파일이 동일하다는 강한 근거가 됩니다. 다만 악성 파일도 일치하는 해시를 가질 수 있으므로 배포처의 신뢰성과 서명도 함께 확인하세요.
선택한 파일이 서버로 업로드되나요?
아니요. 파일 읽기와 SHA 계산은 현재 브라우저에서 실행되며 파일 내용과 해시 결과를 툴하루 서버로 전송하거나 저장하지 않습니다.