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の切り詰め変種であり、同じ内部構造を共有しますが、異なる初期ハッシュ値を使用し、出力ビット数が少なくなっています。SHA-2ファミリーが提供する最大ダイジェスト長が必要な場合、またはプロトコルがSHA-512を明示的に要求する場合(Ed25519やHMACベースの鍵導出スキームなど)、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を使用して署名鍵を導出し、メッセージダイジェストを計算します。Ed25519署名フローの実装やデバッグの際に、テストペイロードのSHA-512ハッシュを生成して中間値を検証できます。
バックエンドエンジニア — HMAC-SHA512の検証
Webhookシステムや一部の決済ゲートウェイのAPIキー認証(OAuth 1.0aなど)はメッセージ署名にHMAC-SHA512を使用します。開発中にHMAC実装を相互確認するための参照SHA-512ハッシュを計算できます。
DevOps — アーティファクトとバイナリの検証
本番環境にデプロイする前に、ダウンロードしたバイナリ、コンテナイメージ、ファームウェアのSHA-512チェックサムを検証できます。多くのLinuxディストリビューションはISOイメージとともにSHA-512チェックサムを提供しています。
QAエンジニア — FIPS 180-4テストベクターの検証
暗号アルゴリズム検証プログラム(CAVP)のNISTテストベクターとSHA-512出力を照合して、ハッシュ実装がパディングとエッジケースを正しく処理しているか確認できます。
データエンジニア — 大規模キーのフィンガープリント生成
データパイプラインの重複排除のために、複合キーや大規模レコードペイロードをSHA-512でハッシュして決定論的フィンガープリントを作成できます。512ビット出力により、数十億件のレコードを扱う場合でも衝突リスクを最小化できます。
学生 — アバランシェ効果の探究
入力の1文字を変更して、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では、各演算がサイクルあたり2倍のビットを処理するため、64ラウンドではなく80ラウンドを実行するにもかかわらず、ベンチマークではSHA-512がSHA-256を上回ることが多い理由です。アバランシェ効果により、入力の1ビットを反転させると512の出力ビットの約50%が変化します。

SHA-512コードサンプル

SHA-512はすべての主要な言語とランタイムでネイティブにサポートされています。Web Crypto APIはライブラリなしでブラウザ上でも提供されています。以下はUnicode処理やファイルハッシュを含む一般的なパターンをカバーしたサンプルです。

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ビット対SHA-256の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は切り詰めにより攻撃者が必要とする内部状態が破棄されるため、長さ拡張攻撃に対しても本質的に耐性があります。
Ed25519がSHA-512を使用するのはなぜですか?
Ed25519署名方式はSHA-512を2つの場面で使用します:まず32バイトの秘密鍵シードから256ビットの署名スカラーとノンスプレフィックスを導出するため、次に署名中にメッセージをハッシュするためです。SHA-512が選ばれた理由は、2つの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を返し、各バイトを2桁の16進数表現にマッピングすることで16進数文字列に変換します。
SHA-256の代わりにSHA-512を使用すべき場合はいつですか?
プロトコルがSHA-512を要求する場合(Ed25519、一部のHMACスキーム)、128ビット以上の衝突耐性が必要な場合、または64ビットハードウェアで最大スループットを求める場合にSHA-512を使用してください。SHA-512は長いダイジェストが許容される場合のファイル整合性チェックサムにも適しており、非常に大きなデータセットでも偶発的な衝突の確率を下げます。ほとんどのWebアプリケーション、API、TLSでは、SHA-256が引き続き標準的なデフォルトです。