해시 생성기/ MD5 · SHA
브라우저 내장 Web Crypto API를 사용하여 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를支持하여 필요에 따라 선택할 수 있습니다.
코드 예제
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..."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())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)# 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