SHA512ジェネレーター

SHA-512はSHA-256の出力幅を2倍の512ビット(16進128文字)にし、ブロック演算がネイティブに64ビットであるため、64ビットCPUでは実際にSHA-256より高速に動作します。任意のテキストを貼り付けると、このジェネレーターは決定論的な16進ダイジェストを128文字の小文字で返します。規格やプロトコルがSHA-512を指定するとき、たとえば現代のLinuxのシャドウファイル($6$ crypt)、一部のTLS暗号スイート、IPSec、より大きな安全余裕を活かす署名方式に使ってください。SHA-512は一方向ハッシュであり暗号化ではありません。ダイジェストを元のテキストに戻すことはできません。

SHA-512がSHA-256と異なる点

  1. 1

    テキストを入力

    任意のUTF-8文字列です。両者がバイト表現について一致していれば、SHA-512はエンコーディングに依存しません。

  2. 2

    1024ビットのブロックサイズ

    SHA-512は128バイトのブロックを処理します(SHA-256の64バイトに対して)。64ビットハードウェアでバイトあたりが速い理由です。

  3. 3

    80ラウンドの圧縮

    SHA-256の64ラウンドより多く、8個の32ビットワードではなく8個の64ビットワードを処理します。

  4. 4

    128文字の16進ダイジェストをコピー

    出力は常に128文字の小文字16進(512ビット)です。ワンクリックでコピーできます。

SHA-512とSHA-256の比較

プロパティ SHA-256 SHA-512
出力 256ビット / 16進64文字 512ビット / 16進128文字
ブロック 512ビット 1024ビット
ラウンド 64 80
ワードサイズ 32ビット 64ビット
64ビットCPUでの速度 約1.5GB/s(SHA-NI併用) 約1.2GB/s(ソフトウェア)
32ビットCPUでの速度 高速 やや低速(64ビット演算なし)
適した用途 汎用 長期保存用のハッシュ

SHA-512が好まれる場面

  • Linuxのシャドウパスワード。 $6$...$...は、既定で5000ラウンド(調整可能)のSHA-512-cryptを意味します。
  • 切り詰めの低減。 一部のアーカイブ系はSHA-512を256ビットに切り詰めて「SHA-512/256」とし、長さ拡張攻撃に耐性を持たせます。
  • SPHINCS+など、他のポスト量子署名。 SHA-512またはSHA-3系に大きく依存します。
  • TLS 1.2のGCMスイート。 ECDHE-RSA-AES256-GCM-SHA384はSHA-384(SHA-512の派生)を使います。

長さと16進の確認

SHA-512ダイジェストは常に16進128文字です。出力がこれより短い場合は、切り詰められた派生(SHA-512/224またはSHA-512/256)か、まったく別のアルゴリズムを見ています。空文字列のダイジェストはcf83e1357eefb8bd...a538327af927da3e(128文字)です。

SHA-512を使うべきでない場合

  • 仕様がSHA-256を求めるとき。差し替えはプロトコル違反です。
  • 32ビットや組み込みCPUで速度が必要なとき。通常はSHA-256のほうが適します。
  • パスワードのハッシュ化そのものには、SHA-512と組み合わせる場合でもArgon2idまたはbcryptを使ってください。

よくある質問

より大きな安全余裕を提供します。衝突に対しておおよそ2^256対2^128の計算量ですが、いずれも現在および近い将来の用途には安全とされています。「大きいほど安全」という直感ではなく、プロトコル適合性と性能で選んでください。

SHA-512は64ビットワードを処理し、これは現代CPUのレジスタ幅に一致します。SHA-256は32ビットワードで動くため、64ビットCPUではレジスタの半分を無駄にします。ただしIntel/AMDのSHA-NI拡張命令はSHA-256を高速化し、この結果を逆転させることがあります。

いいえ。SHA-512/256は、初期化定数が異なり出力が256ビットの別アルゴリズムです。このツールの出力を16進64文字に切り詰めることとは違います。

当社のサーバー上です。テキストは暗号化された接続で送信され、標準のSHA-512関数でハッシュ化され、128文字のダイジェストが返されます。送信された内容は保存しません。SHA-512は一方向なので、ダイジェストを元の入力へ戻したり復号したりすることはできません。

関連ツール

このツールは他の言語でも利用できます