SHA-512 해시 생성기

텍스트, 16진수 바이트, 파일의 512비트 SHA-512 다이제스트를 계산해 예상 값과 대조하고, 같은 입력의 SHA-384, SHA-256, SHA-1, MD5, CRC-32도 확인할 수 있습니다.

모든 알고리즘

브라우저에서만 실행되며 어떤 데이터도 업로드되지 않습니다.

사용 방법

  1. 텍스트나 16진수 바이트를 입력하거나, 파일을 열어 그 내용을 해시합니다.
  2. ‘출력 형식’을 고릅니다. sha512sum 방식의 체크섬에는 16진수를, 무결성 문자열에는 Base64를 선택합니다.
  3. 예상 값을 ‘비교 대상’ 필드에 붙여넣어 확인합니다. 16진수와 Base64 모두 사용할 수 있습니다.
  4. SHA-384가 필요하면 ‘알고리즘’ 선택 상자에서 고르거나 ‘모든 알고리즘’ 표에서 복사합니다.

SHA-512란 무엇입니까?

SHA-512는 SHA-2 함수 중 출력이 가장 긴 함수로, FIPS 180-4와 RFC 6234에 규정되어 있습니다. SHA-256이 32비트 워드로 동작하는 반면 SHA-512는 64비트 워드, 1024비트 블록, 80라운드를 사용하며 512비트 다이제스트를 출력합니다. 16진수로는 128자, Base64로는 88자입니다. 약 256비트에 이르는 충돌 저항성은 예상할 수 있는 어떤 공격보다도 훨씬 높으며, 다른 모든 해시처럼 단방향이라 다이제스트에서 입력을 복원할 수 없습니다.

SHA-512는 64비트 연산을 사용하므로, 전용 SHA-256 명령어가 없는 64비트 프로세서에서는 바이트당 속도가 SHA-256보다 빠른 경우가 많습니다. 그런 명령어가 있는 CPU에서는 보통 SHA-256이 더 빠릅니다.

SHA-384, SHA-512/256 등 출력을 줄인 변형

여러 표준 해시는 SHA-512를 다른 초깃값으로 실행한 뒤 출력을 더 짧게 자른 것입니다.

이름출력16진수 길이주요 용도
SHA-384384비트96TLS 1.3 암호 스위트, Subresource Integrity
SHA-512/256256비트64SHA-512의 속도로 SHA-256 크기의 출력
SHA-512/224224비트56거의 쓰이지 않음

초깃값이 다르기 때문에 SHA-512/256은 SHA-512의 앞쪽 16진수 64자와 같지 않습니다. 출력을 줄인 변형은 전체 길이의 SHA-256과 SHA-512에 영향을 주는 길이 확장 공격에도 강합니다. 이 페이지는 SHA-384와 SHA-512를 계산합니다. SHA-512/256이 필요하면 openssl dgst -sha512-256 같은 다른 도구를 사용하십시오.

Base64 무결성 문자열과 비밀번호 해시

16진수 형태는 너무 길기 때문에, 기계가 읽는 형식에서는 SHA-512를 Base64로 담는 경우가 많습니다. Subresource Integrity는 sha256-, sha384-, sha512- 뒤에 Base64 다이제스트가 붙은 값을 받고, npm의 package-lock.json은 패키지마다 integrity 값을 저장하는데 이 값은 보통 sha512-로 시작합니다. 파일을 열고 Base64 출력을 선택한 다음 접두사를 붙이십시오.

$6$로 시작하는 Linux 비밀번호 해시는 sha512crypt입니다. 솔트를 넣은 SHA-512를 수천 번 반복한 것이므로, 비밀번호를 단순히 SHA-512로 해시한 값과 같아질 일은 없습니다. 비밀번호를 SHA-512로 한 번만 해시하면 다이제스트가 아무리 길어도 무차별 대입으로 금방 풀립니다. 비밀번호는 Argon2id, scrypt, bcrypt, PBKDF2-HMAC-SHA512로 저장하십시오.

명령줄과 코드에서 SHA-512 계산하기

sha512sum file.tar.gz                        # Linux
shasum -a 512 file.tar.gz                    # macOS
certutil -hashfile file.tar.gz SHA512        # Windows
Get-FileHash file.tar.gz -Algorithm SHA512   # PowerShell

# integrity 속성에 넣을 Base64 다이제스트
openssl dgst -sha512 -binary file.js | openssl base64 -A

# Python
hashlib.sha512(data).hexdigest()

// Node.js
crypto.createHash('sha512').update(data).digest('base64')

이 페이지에서는 브라우저의 Web Crypto API가 SHA-512를 계산하며, ‘모든 알고리즘’ 표에 같은 입력의 SHA-384, SHA-256, SHA-1, MD5, CRC 값이 표시됩니다.

예시

입력 (UTF-8)SHA-512
Hello, World!374d794a95cdcfd8b35993185fef9ba368f160d8daf432d08ba9f1ed1e5abe6cc69291e0fa2fe0006a52570ef18c19def4e617c33ce52ef0a6e5fbe318cb0387
Base64.is44960f483bc929874301e2fb54f4337c84641ad12cb6b2639875e26e490664e65da046cf43eafb2ab4a47b5d3eb66637630af5cba841974bfaa4e372dd0453d2
你好5232181bc0d9888f5c9746e410b4740eb461706ba5dacfbc93587cecfc8d068bac7737e92870d6745b11a25e9cd78b55f4ffc706f73cfcae5345f1b53fb8f6b5

자주 묻는 질문

SHA-512는 SHA-256보다 더 안전합니까?

안전 여유가 더 큽니다. 충돌 저항성이 SHA-256의 128비트에 비해 약 256비트입니다. 하지만 둘 다 깨지지 않았고 무차별 대입으로는 도저히 닿을 수 없는 수준입니다. 형식이 SHA-512를 요구하거나, 사용하는 하드웨어에서 더 빠르거나, 더 긴 다이제스트가 필요할 때 SHA-512를 고르고, 그렇지 않다면 SHA-256으로 충분합니다.

SHA-512 해시를 복호화할 수 있습니까?

아니요. SHA-512 다이제스트는 입력이 단어 하나든 디스크 이미지 전체든 항상 64바이트입니다. 따라서 수많은 서로 다른 입력이 각 다이제스트를 공유하며, 디코딩할 정보가 없습니다. 다이제스트는 추측한 값의 해시와 비교할 수 있을 뿐입니다. 조회 사이트는 이런 방식으로 흔한 단어와 비밀번호를 찾아내지만, 예측할 수 없는 데이터는 결코 찾지 못합니다.

SHA-512 해시의 길이는 얼마입니까?
64바이트입니다. 16진수로는 128자, Base64로는 ==로 끝나는 88자입니다. SHA3-512, BLAKE2b, Whirlpool도 길이가 같으므로, 정체를 모르는 다이제스트는 해시 식별기에 붙여넣어 어느 것이 해당하는지 확인하십시오.
SHA-512와 SHA3-512는 같은 것입니까?

아니요. SHA3-512(FIPS 202)는 완전히 다른 설계인 Keccak을 기반으로 하며, 같은 입력에 대해 다른 다이제스트를 만듭니다. 이 페이지는 SHA-3을 계산하지 않습니다.

똑같아 보이는 두 문자열의 해시가 다른 이유는 무엇입니까?

해시는 바이트를 대상으로 합니다. é 같은 문자는 코드 포인트 하나로 저장될 수도 있고, e와 결합용 악센트 부호로 저장될 수도 있습니다. 끝에 붙은 공백, 줄 끝(LF 또는 CRLF), 문자 집합(UTF-8, UTF-16, Windows-1252)도 바이트를 바꿉니다. 상대 시스템이 사용한 ‘문자 인코딩’을 선택하거나 정확한 바이트를 16진수로 붙여넣으십시오.