해시 생성기/ MD5 · SHA

브라우저 내장 Web Crypto API를 사용하여 MD5, SHA-1, SHA-256, SHA-512 해시를 실시간으로 계산합니다.

입력 텍스트
MD5
SHA-1
SHA-256
SHA-512

이 도구가 도움이 되었나요?

해시 알고리즘이란 무엇인가

해시 알고리즘은任意 길이의 입력 데이터를固定 길이의 출력으로 변환하는 단방향 함수입니다. 일반적인 해시 알고리즘에는 MD5(128비트), SHA-1(160비트), SHA-256(256비트), SHA-512(512비트)가 있습니다. 해시는 결정론적(같은 입력은 항상 같은 출력 생성), 단방향(해시 값에서 원본 데이터 복원 불가), 설崩 효과(입력의 미미한 변화가 출력에 큰 변화 야기)의 특성을 가집니다.

해시의 일반적인应用场景

비밀번호 저장: 시스템은 평문 비밀번호가 아닌 해시 값(일반적으로 솔트 포함)을 저장합니다. 파일 무결성 검증: 다운로드 후 SHA-256 해시 값을 비교하여 파일 변조 여부 확인. 전자 서명: 문서 해시 값에 서명하여 출처와 무결성 검증. 데이터 중복 제거: 해시 값으로 두 데이터의 동일 여부를 빠르게判定. 블록체인: Bitcoin은 더블 SHA-256 해싱으로 거래不可변性을确保합니다.

MD5는 아직 안전한가

MD5는 충돌 취약점(다른 입력이 같은 해시 값 생성 가능)이 증명되어 비밀번호 저장이나 전자 서명等 보안이 중요한场景에는使用해서는 안 됩니다. 그러나 파일 체크섬이나 캐시 키 생성等 비보안 용도로는 지금도广泛 사용됩니다. 보안이 중요한场景에서는 SHA-256 이상의 사용을 권장합니다. 이 도구는 MD5, SHA-1, SHA-256, SHA-512를支持하여 필요에 따라 선택할 수 있습니다.

코드 예제

JavaScript (Web Crypto API)
async function sha256(text) {
  const data = new TextEncoder().encode(text);
  const hash = await crypto.subtle.digest(
    "SHA-256", data
  );
  return Array.from(new Uint8Array(hash))
    .map(b => b.toString(16).padStart(2, "0"))
    .join("");
}

await sha256("hello");
// "2cf24dba5fb0a30e26e83b2ac5b9e29e..."
Python (hashlib)
import hashlib

text = "hello".encode("utf-8")

print(hashlib.md5(text).hexdigest())
print(hashlib.sha1(text).hexdigest())
print(hashlib.sha256(text).hexdigest())
print(hashlib.sha512(text).hexdigest())

# File hash
with open("file.txt", "rb") as f:
    print(hashlib.sha256(f.read()).hexdigest())
Go (crypto)
import (
  "crypto/md5"
  "crypto/sha256"
  "fmt"
)

data := []byte("hello")

md5Hash := md5.Sum(data)
sha256Hash := sha256.Sum256(data)

fmt.Printf("%x\n", md5Hash)
fmt.Printf("%x\n", sha256Hash)
Shell
# Linux
echo -n "hello" | md5sum
echo -n "hello" | sha256sum
echo -n "hello" | sha512sum

# macOS
echo -n "hello" | md5
echo -n "hello" | shasum -a 256

# File
sha256sum myfile.zip
shasum -a 256 myfile.zip

자주 묻는 질문

해시 함수란 무엇인가요?
해시 함수는 임의 길이의 입력 데이터를 고정 길이의 출력(다이제스트)으로 매핑하는 알고리즘입니다. 동일한 입력은 항상 동일한 해시를 생성하고, 서로 다른 입력이 동일한 출력을 생성하는 경우는 거의 없으며(충돌 저항성), 해시에서 입력을 복원할 수 없습니다(일방향성).
MD5는 아직 안전한가요?
MD5는 비밀번호 저장이나 디지털 서명에는 더 이상 안전하지 않습니다. 알려진 충돌 공격이 존재합니다. 파일 무결성 검사나 체크섬과 같은 비보안 용도에는 여전히 널리 사용됩니다. 프로덕션 환경의 비밀번호에는 bcrypt 또는 Argon2를 사용하세요.
SHA-256과 SHA-512의 차이점은 무엇인가요?
둘 다 충분한 보안성을 갖춘 SHA-2 계열입니다. SHA-256은 32바이트(256비트) 다이제스트를 생성하고, SHA-512는 64바이트(512비트)를 생성합니다. 64비트 CPU에서는 SHA-512가 더 빠르고, 32비트 시스템에서는 SHA-256이 더 빠릅니다. 비트코인은 SHA-256을 사용하고, Git은 SHA-1을 사용합니다(SHA-256으로 마이그레이션 중).
해시 값이 같으면 내용도 같나요?
실질적으로 그렇습니다. SHA-256이나 SHA-512에서 해시 충돌(서로 다른 입력이 동일한 해시를 생성)은 계산상 불가능합니다. 다운로드 후 파일의 SHA-256을 확인하면 변조나 손상이 없음을 확인할 수 있습니다.
터미널에서 해시를 계산하려면 어떻게 하나요?
Linux: md5sum file.txt / sha256sum file.txt / sha512sum file.txt. macOS: md5 file.txt / shasum -a 256 file.txt / shasum -a 512 file.txt. Windows PowerShell: Get-FileHash file.txt -Algorithm SHA256.
제 데이터는 안전한가요?
네. 이 도구는 완전히 브라우저에서 실행됩니다. MD5는 순수 JavaScript로 구현되었고, SHA 해시는 브라우저 내장 Web Crypto API를 사용합니다. 데이터가 서버로 전송되는 일은 없습니다.