작업 히스토리 (History)
기록된 작업이 없습니다.

로그인하시면 작업 기록을 무제한으로 저장하고 여러 기기에서 동기화하여 사용할 수 있습니다.

HASHCRYPTOGRAPHYSECURITY

해시 생성기

텍스트나 대용량 파일의 다양한 해시값(MD5, SHA-1, SHA-2)을 생성합니다.

Input Data
Enter text or upload a file to generate hashes
Characters: 0Bytes: 0 B
Calculated Hashes
Here are the generated hash values for each algorithm
SHA-256
Waiting for input...
Options

도구 설명 및 사용 방법

단방향 복제 불가능 해시 알고리즘인 MD5, SHA-1, SHA-256, SHA-512를 바탕으로, 기입한 문자열 텍스트나 로컬 파일로부터 데이터 무결성 검증을 위한 고유의 해시 지문을 얻습니다. 보안 용도와 체크섬 용도를 구분해서 사용하세요.

사용 단계

1
입력 단위를 "텍스트(Text)"로 둘지 또는 "파일(File)" 업로드 모드로 둘지 판단합니다.
2
검증할 텍스트를 타이핑하거나 검사 대상 파일을 드래그하여 등록합니다.
3
보안 레벨에 따른 각종 해시(MD5, SHA-1, SHA-256, SHA-512) 결과값들이 일괄 연산되어 출력됩니다.
4
용도에 맞는 해시값의 복사 단추를 클릭해 체크섬 인증 또는 보안 대조값으로 활용합니다.

작동 원리 및 상세 설명

암호학적 해시 함수는 임의 길이의 입력을 고정 길이의 출력(다이제스트)으로 매핑하며, 세 가지 핵심 속성을 가집니다: (1) 단방향성(원본 복원 불가), (2) 충돌 저항성(서로 다른 입력이 같은 출력을 가질 확률이 극히 낮음), (3) 눈사태 효과(입력의 1비트 변화가 출력에 큰 변화를 일으킴). MD5와 SHA-1은 2000년대 후반부터 실용적인 충돌 공격이 발견되어 보안 용도로는 deprecated 되었습니다. SHA-256/SHA-512는 현재 웹과 블록체인에서 가장 널리 쓰이는 안전한 선택입니다. 본 도구는 Web Crypto API (subtle.digest)를 사용해 브라우저 네이티브로 고속 계산합니다. 모든 해시 연산은 로컬에서 수행되며, 텍스트나 파일 내용이 외부로 전송되지 않습니다. 따라서 중요한 설정 파일, 바이너리 배포물, 데이터베이스 덤프 등의 무결성을 오프라인으로 검증하기에 적합합니다.

자주 묻는 질문 (FAQ)

MD5나 SHA-1은 아직도 사용해도 되나요?
보안 목적(비밀번호 저장, 서명, 파일 무결성 증명 등)으로는 절대 사용하지 마세요. 충돌 공격이 실용적으로 가능합니다. 체크섬(다운로드 파일 빠른 검증)이나 비보안 캐시 키로는 여전히 유용합니다. 새로운 프로젝트에서는 SHA-256 이상을 기본으로 사용하세요.
해시 값으로 원본 파일을 복원할 수 있나요?
할 수 없습니다. 좋은 암호학적 해시는 단방향(one-way)이며, 충돌 저항성(collision resistance)을 가집니다. 해시 값만으로는 원본을 복원하거나 유추할 수 없습니다(무차별 대입 공격은 별개).
로컬 파일을 해시할 때 파일 내용이 서버로 전송되나요?
전송되지 않습니다. File API + Web Crypto API (또는 폴백)를 사용해 브라우저 메모리에서 스트리밍 해시를 계산합니다. 대용량 파일도 안전하게 처리할 수 있습니다.

코드 사용 예시

다운로드 파일 무결성 검증 (실무 패턴)
javascript
// 사용자가 받은 설치 파일의 SHA-256을 공식 사이트의 해시와 비교
const file = await fileInput.files[0];
const buffer = await file.arrayBuffer();
const hashBuffer = await crypto.subtle.digest('SHA-256', buffer);
const hashArray = Array.from(new Uint8Array(hashBuffer));
const hashHex = hashArray.map(b => b.toString(16).padStart(2, '0')).join('');

console.log('SHA-256:', hashHex);
// 공식 배포 해시와 === 비교하여 변조 여부 확인

공식 사이트에서 제공하는 .sha256 파일 값과 사용자가 직접 계산한 해시를 비교하여 파일이 전송 중 변조되지 않았는지 검증하는 전형적인 보안 절차.