SHA-256 해시 생성기 소개
SHA-256은 SHA-2 계열의 암호학적 해시 함수입니다. 짧은 단어든, 문서든, 수 GB짜리 디스크 이미지든 어떤 입력이라도 256비트 길이의 고정된 값으로 바꾸며, 이 값은 보통 16진수 64자로 적습니다. 입력의 비트 하나만 바뀌어도 완전히 다른 해시가 나오기 때문에, SHA-256 체크섬은 내려받은 파일이나 백업, 복사한 파일이 온전하고 바뀌지 않았는지 확인하는 표준 방법입니다.
이 도구는 텍스트(UTF-8로 인코딩)와 파일의 해시를 계산합니다. 파일은 백그라운드 워커가 처리하고, 큰 파일은 4 MB씩 나누어 읽으며 차례로 해시를 계산하므로, 아주 큰 파일도 메모리에 한꺼번에 올리거나 페이지를 멈추게 하지 않고 확인할 수 있습니다. 배포처가 공개한 체크섬을 붙여넣으면 일치하는지 바로 알 수 있습니다.
모든 해시 계산은 브라우저 안에서 이루어집니다. 텍스트와 파일은 업로드되지 않습니다.
사용 방법
- "입력"에서 "텍스트"나 "파일"을 고르세요.
- 텍스트라면 "해시할 텍스트"에 입력하거나 붙여넣으세요. 입력하는 대로 "SHA-256 (hex)"와 "SHA-256 (Base64)" 값이 바뀝니다.
- 파일이라면 "파일 선택"을 클릭하거나 파일을 상자에 끌어다 놓으세요. 여러 파일은 진행 막대와 함께 차례로 해시를 계산합니다. "취소"를 누르면 계산을 멈추고, "다시 계산"을 누르면 취소한 파일을 다시 계산합니다.
- 체크섬을 확인하려면 예상 값을 "예상 해시와 비교(선택)"에 붙여넣으세요. 결과마다 "일치"나 "불일치"가 표시됩니다.
- 대문자가 필요하면 "hex 대문자로 표시"를 체크하고, "복사" 버튼으로 해시를 복사하세요.
기능
- 크기 제한 없는 파일: 파일을 Web Worker 안에서 4 MB 조각으로 나누어 해시에 흘려보내므로 메모리 사용이 적고 페이지도 멈추지 않습니다. 64 MB 이하의 파일은 브라우저에 내장된 Web Crypto를 쓸 수 있으면 그것을 쓰고, 더 큰 파일은 도구에 들어 있는 SHA-256 구현을 씁니다.
- 체크섬 비교: 예상 해시를 대소문자에 관계없이 hex로, 또는 Base64로 붙여넣으세요. sha256sum 파일에서 복사한 줄("해시 파일 이름")이나 sha256: 접두사가 붙은 값도 쓸 수 있습니다.
- 여러 파일을 한 번에: 여러 파일을 한꺼번에 추가하고 파일마다 진행 상황, 걸린 시간, 속도를 확인하세요. 예상 해시 하나를 모든 파일과 비교하므로, 다운로드 폴더에서 맞는 파일을 찾을 때 유용합니다.
- hex와 Base64 출력: 해시 값을 소문자나 대문자 16진수로, 그리고 Subresource Integrity 속성 등에서 쓰는 Base64로 받을 수 있습니다.
- 검증된 구현: 내장 SHA-256 코드는 공식 FIPS 180-4 테스트 벡터와, 0바이트부터 수 MB까지의 입력에 대해 널리 쓰이는 기준 구현과 비교해 테스트했습니다.
사용 예
내려받은 설치 파일이나 ISO 이미지 확인하기
다운로드 페이지에는 "3f2a…9c1e distro-24.04.iso" 같은 줄이 공개되어 있는 경우가 많습니다. "파일"을 고르고 내려받은 ISO를 추가한 뒤 그 줄을 "예상 해시와 비교(선택)"에 붙여넣으세요. "일치"가 나오면 배포처가 해시를 계산한 파일과 정확히 같은 파일입니다.
두 사본이 똑같은지 확인하기
원본 파일과 백업 사본을 모두 추가하세요. 두 파일의 SHA-256이 같으면 이름이나 날짜가 달라도 내용은 바이트 하나까지 똑같습니다.
Subresource Integrity 값 만들기
CDN으로 제공하는 JavaScript나 CSS 파일의 해시를 계산하고 Base64 결과를 복사하세요. 앞에 sha256-를 붙여 <script>나 <link> 태그의 integrity 속성에 넣습니다.
명령줄과 결과가 다른 이유 이해하기
hello를 입력하면 2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824가 나옵니다. 셸 명령 echo "hello" | sha256sum은 echo가 줄바꿈을 덧붙이기 때문에 5891b5b5…6be03을 출력합니다. 같은 바이트의 해시를 구하려면 echo -n을 쓰세요.
제한 사항과 참고
- SHA-256만으로는 비밀번호를 저장하기에 적합하지 않습니다. 빠르게 계산되도록 설계되었기 때문에, 해시가 유출되면 초당 수십억 번의 추측으로 공격받을 수 있습니다. 비밀번호에는 고유한 솔트와 함께 Argon2, scrypt, bcrypt, PBKDF2 같은 전용 비밀번호 해시 함수를 쓰고, SHA-256은 무결성 확인에 쓰세요.
- 해시가 일치해도 예상 값이 배포처의 HTTPS 페이지나 서명된 체크섬 파일처럼 믿을 수 있는 곳에서 왔을 때만 무결성이 증명됩니다. 파일을 바꿔치기할 수 있는 사람은 그 옆에 둔 체크섬도 바꿔치기할 수 있는 경우가 많습니다.
- 입력하거나 붙여넣은 텍스트는 브라우저가 줄바꿈을 LF로 바꾸며 UTF-8로 인코딩됩니다. Windows CRLF 줄바꿈이 있는 텍스트 파일처럼 정확한 바이트의 해시가 필요하다면 파일 자체를 추가하세요.
- 빈(0바이트) 파일도 받습니다. 빈 파일의 SHA-256은 항상 e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855이므로, 이 값이 나오면 파일에 내용이 없다는 뜻입니다.
- 해시 계산 속도는 기기에 따라 다릅니다. 64 MB가 넘는 파일, 그리고 Web Crypto가 없는 브라우저(예: HTTPS로 제공되지 않는 페이지)에서는 모든 파일에 내장 구현을 쓰며, 이는 네이티브 코드보다 느립니다.
- SHA-256만 계산합니다. MD5, SHA-1, SHA-512 같은 다른 알고리즘은 지원하지 않습니다.
자주 묻는 질문
SHA-256 해시를 복호화하거나 되돌릴 수 있나요?
아닙니다. 해시는 암호화된 데이터가 아니라 한 방향으로만 계산되는 지문이므로 복호화할 것이 없습니다. 주어진 해시에 맞는 입력을 찾는 유일한 방법은 입력을 추측해 비교하는 것이며, 이는 약한 비밀번호처럼 짧거나 흔한 입력에서만 현실적으로 가능합니다.
다른 도구와 해시가 다른 이유는 무엇인가요?
거의 항상 입력이 조금 다르기 때문입니다. 끝에 붙은 줄바꿈(echo가 하나 덧붙입니다), Windows와 Unix의 줄바꿈 차이, 앞뒤의 공백, 다른 텍스트 인코딩 등이 원인입니다. 파일이라면 다운로드가 끝났는지, 맞는 파일을 비교하고 있는지 확인하세요.
사용자 비밀번호를 저장할 때 SHA-256을 써도 되나요?
SHA-256만으로는 안 됩니다. 솔트를 쓰든 안 쓰든 SHA-256은 너무 빨라서 오프라인 추측 공격을 막지 못합니다. 비밀번호 저장에는 Argon2id, scrypt, bcrypt, 반복 횟수를 많이 준 PBKDF2처럼 일부러 느리게 만든, 솔트를 쓰는 알고리즘이 필요합니다.
hex 출력과 Base64 출력은 무엇이 다른가요?
둘 다 같은 32바이트 해시 값을 나타냅니다. hex는 64자(0–9, a–f)를 쓰며 체크섬 파일과 대부분의 웹사이트가 이 형식을 보여 줍니다. Base64는 44자를 쓰며 Subresource Integrity나 일부 API에서 볼 수 있습니다.
해시를 계산하려고 파일을 업로드하나요?
아닙니다. 이 페이지가 기기에서 파일을 바로 읽고 브라우저 안에서 해시를 계산합니다. 네트워크로 아무것도 전송하지 않으며, 큰 파일도 컴퓨터 밖으로 나갈 필요가 없습니다.