SHA-512 해시 생성기

임의의 텍스트에서 SHA-512 해시 생성

입력 텍스트

로컬에서 실행 · 시크릿 붙여넣기 안전

SHA-512 해시

SHA-512 해시가 여기에 표시됩니다…

SHA-512 해싱이란?

SHA-512는 NIST FIPS 180-4에 SHA-2 계열의 가장 큰 구성원으로 정의된 암호화 해시 함수입니다. 임의 길이의 입력을 받아 고정된 512비트(64바이트) 메시지 다이제스트를 생성하며, 128자리 16진수 문자열로 표시됩니다. SHA-512는 디지털 서명(Ed25519는 내부적으로 SHA-512에 의존), HMAC 구성, 파일 무결성 검증, 그리고 넓은 보안 마진이 필요한 암호화 프로토콜에서 사용됩니다.

SHA-512는 64비트 워드 연산과 80회 압축 라운드를 사용하여 1024비트(128바이트) 블록을 처리합니다. 8개의 초기 해시값은 처음 8개 소수의 제곱근의 소수 부분에서 파생되며, 80개의 라운드 상수는 처음 80개 소수의 세제곱근에서 도출됩니다. 64비트 연산을 사용하기 때문에 SHA-512는 더 긴 다이제스트를 생성함에도 불구하고 현대 64비트 프로세서에서 SHA-256보다 빠른 경우가 많습니다.

SHA-384, SHA-512/224, SHA-512/256은 모두 SHA-512의 잘린(truncated) 변형으로, 동일한 내부 구조를 공유하지만 다른 초기 해시값을 사용하고 더 적은 비트를 출력합니다. SHA-2 계열이 제공하는 최대 다이제스트 길이가 필요하거나, Ed25519 또는 특정 HMAC 기반 키 파생 방식처럼 프로토콜이 SHA-512를 명시적으로 요구할 때 SHA-512가 올바른 선택입니다. SHA-512는 256비트의 충돌 저항성을 제공하며, 이는 SHA-3-512와 동등하고 SHA-256의 128비트 한계를 크게 초과합니다.

온라인 SHA-512 생성기를 사용하는 이유

SHA-512 해시를 생성하려면 보통 터미널 명령어나 몇 줄의 코드가 필요합니다. 이 브라우저 기반 도구를 사용하면 소프트웨어를 설치하거나, 터미널로 전환하거나, 일회용 스크립트를 작성하지 않고도 즉시 SHA-512 다이제스트를 생성할 수 있습니다.

브라우저에서 즉시 연산
텍스트를 붙여넣거나 입력하면 128자리 SHA-512 해시가 즉시 표시됩니다. Web Crypto API가 JavaScript 라이브러리 오버헤드 없이 네이티브로 연산을 처리합니다.
🔒
개인정보 우선 해싱
입력 데이터는 기기를 벗어나지 않습니다. 모든 해싱은 브라우저 내장 Web Crypto API를 통해 로컬에서 실행됩니다. 서버로 전송되거나 기록되거나 저장되는 데이터가 없습니다.
📋
복사 바로 가능한 출력 형식
클릭 한 번으로 소문자 또는 대문자 16진수 SHA-512 해시를 얻을 수 있습니다. 패키지 매니저, SBOM 매니페스트, 보안 문서의 체크섬을 대조할 때 유용합니다.
🔍
계정 또는 설치 불필요
Chrome, Firefox, Safari, Edge 등 모든 최신 브라우저에서 동작합니다. 회원가입, 확장 프로그램, CLI 설정이 필요 없습니다. 페이지를 열고 즉시 해싱을 시작하세요.

SHA-512 해시 생성기 활용 사례

프론트엔드 개발자 — Ed25519 서명 디버깅
Ed25519는 내부적으로 SHA-512를 사용하여 서명 키를 파생하고 메시지 다이제스트를 계산합니다. 테스트 페이로드의 SHA-512 해시를 생성하여 Ed25519 서명 흐름을 구현하거나 디버깅할 때 중간값을 검증하세요.
백엔드 엔지니어 — HMAC-SHA512 검증
웹훅 시스템과 API 인증 방식(OAuth 1.0a, 일부 결제 게이트웨이)은 메시지 서명에 HMAC-SHA512를 사용합니다. 개발 중 HMAC 구현을 교차 검증하기 위해 참조 SHA-512 해시를 계산하세요.
DevOps — 아티팩트 및 바이너리 검증
프로덕션 배포 전 다운로드한 바이너리, 컨테이너 이미지, 펌웨어의 SHA-512 체크섬을 검증하세요. 많은 Linux 배포판이 ISO 이미지와 함께 SHA-512 체크섬을 제공합니다.
QA 엔지니어 — FIPS 180-4 테스트 벡터 검증
NIST의 CAVP(Cryptographic Algorithm Validation Program) 테스트 벡터와 SHA-512 출력을 교차 검증하여 해싱 구현이 패딩과 엣지 케이스를 올바르게 처리하는지 확인하세요.
데이터 엔지니어 — 대형 키 핑거프린팅
복합 키나 대용량 레코드 페이로드를 SHA-512로 해싱하여 데이터 파이프라인의 중복 제거를 위한 결정론적 핑거프린트를 만드세요. 512비트 출력은 수십억 개의 레코드에서도 충돌 위험을 최소화합니다.
학생 — 눈사태 효과 탐구
입력에서 문자 하나를 변경하고 128자리 SHA-512 출력 전체가 예측 불가능하게 변하는 것을 관찰하세요. 이를 통해 해시 함수를 암호화에서 유용하게 만드는 눈사태 특성을 이해할 수 있습니다.

SHA-2 계열 변형 비교

SHA-512는 FIPS 180-4에 정의된 SHA-2 계열에 속합니다. 아래 표는 SHA-512의 64비트 내부 구조를 공유하는 SHA-2 변형들을 SHA-256과 함께 비교합니다.

변형다이제스트 크기16진수 길이바이트 크기적합한 용도
SHA-256256 bits64 hex chars32 bytesTLS certificates, blockchain, JWTs, SRI
SHA-384384 bits96 hex chars48 bytesTLS 1.3 CertificateVerify, CNSA/Suite B
SHA-512512 bits128 hex chars64 bytesDigital signatures, HMAC, Ed25519, file integrity
SHA-512/224224 bits56 hex chars28 bytesSHA-512 speed on 64-bit CPUs, 224-bit output
SHA-512/256256 bits64 hex chars32 bytesSHA-512 speed on 64-bit CPUs, 256-bit output

SHA-512 대 SHA-256 대 SHA-384 대 SHA-3-512

적합한 해시 알고리즘 선택은 보안 요구사항, 성능 제약, 프로토콜 명세에 달려 있습니다. SHA-512는 SHA-2 계열에서 가장 넓은 다이제스트를 제공하며 64비트 하드웨어에서 SHA-256보다 빠른 경우가 많습니다. 아래 비교는 선택 시 가장 중요한 속성들을 다룹니다.

속성SHA-512SHA-256SHA-384SHA-3-512
Digest size512 bits (128 hex)256 bits (64 hex)384 bits (96 hex)512 bits (128 hex)
Block size1024 bits512 bits1024 bits1600 bits (sponge)
Word size64 bits32 bits64 bitsN/A (sponge)
Rounds80648024
Collision resistance2^256 operations2^128 operations2^192 operations2^256 operations
Security statusSecureSecureSecureSecure
StandardFIPS 180-4FIPS 180-4FIPS 180-4FIPS 202
Web Crypto APIYesYesYesNo
64-bit optimizedYesNo (32-bit words)YesYes
Primary use todayEd25519, HMAC, file checksumsTLS, blockchain, SRITLS 1.3, CNSABackup standard

SHA-512 내부 동작 원리

SHA-512는 Merkle-Damgård 구조를 통해 1024비트 블록 단위로 입력을 처리합니다. 처음 8개 소수의 제곱근의 소수 부분에서 파생된 8개의 64비트 상태 워드(H0–H7)를 초기화합니다. 각 블록은 64비트 워드에 대한 비트 연산(AND, XOR, NOT, 우회전, 우이동)과 처음 80개 소수의 세제곱근에서 파생된 80개 라운드 상수를 사용하는 80회의 혼합 라운드를 거칩니다.

Input: "hello world"
SHA-512: 309ecc489c12d6eb4cc40f50c902f2b4d0ed77ee511a7c7a9bcd3ca86d4cd86f
989dd35bc5ff499670da34255b45b0cfd830e81f605dcf7dc5542e93ae9cd76f
(512 bits = 64 bytes = 128 hex characters)
단계설명
PaddingAppend a 1-bit, then zeros until the message length is 896 mod 1024. Append the original length as a 128-bit big-endian integer.
Block splittingDivide the padded message into 1024-bit (128-byte) blocks.
Message scheduleExpand each 16-word (64-bit) block into 80 words using sigma functions with right-rotate and right-shift operations on 64-bit values.
CompressionProcess 80 rounds per block using Ch, Maj, and two Sigma functions with 80 round constants derived from the cube roots of the first 80 primes.
OutputConcatenate the eight 64-bit state words (H0–H7) into a 512-bit (64-byte) digest, rendered as 128 hexadecimal characters.

더 넓은 64비트 워드 크기가 SHA-256과의 핵심 차이입니다. 64비트 CPU에서 각 연산은 사이클당 두 배의 비트를 처리하므로, SHA-512는 64라운드 대신 80라운드를 실행함에도 벤치마크에서 SHA-256보다 성능이 뛰어난 경우가 많습니다. 눈사태 효과는 단일 입력 비트를 반전시키면 512개 출력 비트 중 약 50%가 변경됨을 보장합니다.

SHA-512 코드 예제

SHA-512는 모든 주요 언어와 런타임에서 네이티브로 지원됩니다. Web Crypto API는 라이브러리 없이 브라우저에서 제공합니다. 아래 예제는 유니코드 처리와 파일 해싱을 포함한 일반적인 패턴을 다룹니다.

JavaScript (Web Crypto API)
// Works in all modern browsers and Node.js 18+
async function sha512(text) {
  const data = new TextEncoder().encode(text)
  const hashBuffer = await crypto.subtle.digest('SHA-512', data)
  const hashArray = Array.from(new Uint8Array(hashBuffer))
  return hashArray.map(b => b.toString(16).padStart(2, '0')).join('')
}

await sha512('hello world')
// → "309ecc489c12d6eb4cc40f50c902f2b4d0ed77ee511a7c7a9bcd3ca86d4cd86f989dd35bc5ff499670da34255b45b0cfd830e81f605dcf7dc5542e93ae9cd76f"

// Node.js (built-in crypto module)
const crypto = require('crypto')
crypto.createHash('sha512').update('hello world').digest('hex')
// → "309ecc489c12d6eb4cc40f50c902f2b4d0ed77ee511a7c7a9bcd3ca86d4cd86f989dd35bc5ff499670da34255b45b0cfd830e81f605dcf7dc5542e93ae9cd76f"
Python
import hashlib

# Basic SHA-512 hash
result = hashlib.sha512(b'hello world').hexdigest()
print(result)
# → "309ecc489c12d6eb4cc40f50c902f2b4d0ed77ee..."

# Hash a string with Unicode (encode to bytes first)
text = 'café ☕'
hashlib.sha512(text.encode('utf-8')).hexdigest()
# → 128-character hex string

# Hash a large file in chunks (memory-efficient)
with open('release.tar.gz', 'rb') as f:
    sha = hashlib.sha512()
    for chunk in iter(lambda: f.read(8192), b''):
        sha.update(chunk)
    print(sha.hexdigest())
Go
package main

import (
    "crypto/sha512"
    "fmt"
)

func main() {
    data := []byte("hello world")
    hash := sha512.Sum512(data)
    fmt.Printf("%x\n", hash)
    // → 309ecc489c12d6eb4cc40f50c902f2b4d0ed77ee511a7c7a9bcd3ca86d4cd86f...
}
CLI (Linux / macOS)
# Using sha512sum (Linux) or shasum (macOS)
echo -n "hello world" | sha512sum
# → 309ecc489c12d6eb4cc40f50c902f2b4d0ed77ee...  -

# macOS
echo -n "hello world" | shasum -a 512
# → 309ecc489c12d6eb4cc40f50c902f2b4d0ed77ee...  -

# Verify a file checksum
echo "309ecc48...  myfile.bin" | sha512sum -c
# → myfile.bin: OK

# Using openssl (cross-platform)
echo -n "hello world" | openssl dgst -sha512
# → SHA2-512(stdin)= 309ecc489c12d6eb4cc40f50c902f2b4...

자주 묻는 질문

SHA-512는 SHA-256보다 더 안전한가요?
SHA-512는 다이제스트 길이의 절반이라는 생일 공격 경계에 기반하여 SHA-256의 128비트 대비 256비트의 충돌 저항성을 제공합니다. 사전 이미지 저항성의 경우 SHA-512는 512비트 대 256비트를 제공합니다. 두 알고리즘 모두 2026년 현재 알려진 모든 공격에 대해 안전하다고 여겨지지만, SHA-512는 더 큰 안전 마진을 제공합니다. 실제로 SHA-256의 128비트 충돌 저항성은 이미 계산상으로 깨뜨리기 불가능한 수준입니다.
SHA-512는 SHA-256보다 느린가요?
64비트 프로세서에서 SHA-512는 네이티브 64비트 워드로 동작하기 때문에 일반적으로 SHA-256보다 빠릅니다. 32비트 또는 임베디드 시스템에서는 각 64비트 연산을 여러 32비트 명령으로 에뮬레이션해야 하므로 SHA-512가 더 느립니다. 대부분의 현대 데스크톱, 서버, 모바일 CPU(모두 64비트)에서 SHA-512는 SHA-256과 동등하거나 더 높은 처리량을 제공합니다.
SHA-512와 SHA-512/256의 차이점은 무엇인가요?
SHA-512/256은 SHA-512와 동일한 내부 알고리즘(1024비트 블록, 80라운드, 64비트 워드)을 사용하지만 다른 초기 해시값으로 시작하고 출력을 256비트로 잘라냅니다. 64비트 하드웨어에서 SHA-512의 속도를 유지하면서 SHA-256 크기의 출력을 제공합니다. 또한 SHA-512/256은 잘림(truncation)이 공격자가 필요로 하는 내부 상태를 버리기 때문에 길이 확장 공격에 본질적으로 저항성을 가집니다.
Ed25519가 SHA-512를 사용하는 이유는 무엇인가요?
Ed25519 서명 방식은 SHA-512를 두 곳에서 사용합니다. 첫 번째는 32바이트 개인 키 시드에서 256비트 서명 스칼라와 논스 접두사를 파생하기 위해, 두 번째는 서명 중 메시지를 해싱하기 위해서입니다. SHA-512는 두 개의 256비트 절반으로 분할할 수 있는 512비트 출력을 제공하며, 64비트 연산이 Curve25519의 255비트 곡선 연산과 잘 맞기 때문에 선택되었습니다.
SHA-512 해시를 역산하여 원래 입력을 복원할 수 있나요?
아니요. SHA-512는 512비트의 사전 이미지 저항성을 가진 단방향 함수입니다. 2^512가지 가능성에 대한 전수 탐색보다 빠르게 입력을 복원하는 알려진 방법이 없습니다. 이 숫자는 관측 가능한 우주의 원자 수보다 큽니다. 그러나 짧거나 예측 가능한 입력은 사전 공격으로 찾을 수 있으므로, 비밀번호에는 원시 SHA-512 대신 bcrypt나 Argon2 같은 전용 KDF를 사용해야 합니다.
SHA-512는 Web Crypto API에서 지원되나요?
네. 모든 최신 브라우저는 crypto.subtle.digest('SHA-512', data)를 통해 SHA-512를 구현합니다. 이것이 이 도구에서 사용하는 API입니다. Node.js 18+, Deno, Bun에서도 사용할 수 있습니다. Web Crypto API는 ArrayBuffer를 반환하며, 각 바이트를 두 자리 16진수 표현으로 매핑하여 16진수 문자열로 변환합니다.
SHA-256 대신 SHA-512를 언제 사용해야 하나요?
프로토콜이 SHA-512를 요구할 때(Ed25519, 특정 HMAC 방식), 128비트 이상의 충돌 저항성이 필요할 때, 또는 64비트 하드웨어에서 최대 처리량을 원할 때 SHA-512를 사용하세요. SHA-512는 더 긴 다이제스트가 허용될 때 파일 무결성 체크섬에도 선호됩니다. 매우 큰 데이터셋에서 우발적 충돌 확률을 더욱 줄일 수 있습니다. 대부분의 웹 애플리케이션, API, TLS에서는 SHA-256이 표준 기본값으로 남아 있습니다.