SHAハッシュ生成ツール|テキスト・ファイルからSHA-256を生成

開発者ツール
入力元

空文字列も生成できます。テキストはUTF-8として処理します。

アルゴリズム

SHA-1は互換性確認用です。新規の安全用途には推奨されません。

入力元とアルゴリズムを選び、ハッシュを生成してください。

このツールでできること

テキストまたはファイルから、SHA-256、SHA-384、SHA-512、SHA-1のハッシュ値を生成できます。複数のアルゴリズムを選び、それぞれの結果を個別にコピーできます。

ダウンロードファイルの照合では、公開元と同じアルゴリズムで生成し、ハッシュ値全体を比較します。ただし、一致が意味を持つのは、比較元のハッシュ値を信頼できる場所から取得した場合です。

使い方

  1. 入力元から「テキスト」または「ファイル」を選びます。
  2. テキストを入力するか、100 MiB以下のファイルを1個選択します。
  3. 生成するSHAアルゴリズムを1つ以上選択します。
  4. 「ハッシュを生成」を押します。
  5. 必要なハッシュ値のコピーボタンを押します。

入力例・出力例

UTF-8テキストabcのSHA-256はba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015adです。

同じファイル本体ならファイル名を変更してもハッシュは変わりませんが、1バイトでも内容が変われば通常は異なる値になります。

よくある利用場面

  • 公開元が示したハッシュとダウンロード済みファイルを照合するとき
  • テキストの改行・空白を含む実際のバイト列からSHAを求めるとき
  • SHA-256・384・512を同じ入力からまとめて生成するとき

仕組み・詳しい解説

ハッシュ値は入力内容を表す固定長の値

SHAは、長さの異なる入力からアルゴリズムごとに決まった長さのメッセージダイジェストを生成します。このツールはブラウザのWeb Crypto APIでSHA-1とSHA-2系の3方式を計算し、小文字の16進数へ変換して表示します(Web Cryptography API)。

アルゴリズム ダイジェスト長 このツールの16進数文字数
SHA-1 160ビット 40文字
SHA-256 256ビット 64文字
SHA-384 384ビット 96文字
SHA-512 512ビット 128文字

入力が長くなっても出力文字数は変わりません。ハッシュは、生成後にメッセージが変化していないか確認する用途に使われます(NIST FIPS 180-4)。

ファイル照合で分かること

公開元が示したハッシュと、このツールで生成した値が異なる場合は、選択したアルゴリズムが違うか、ファイル本体のバイト列が一致していません。SHA-256、SHA-384、SHA-512で一致した場合は、信頼できる比較元と同じ内容であることを確認する材料になります。SHA-1は衝突耐性が必要な照合には使わず、既存データとの互換性確認に限ってください。このツールはハッシュ値を生成するだけで、比較値の入力や一致・不一致の自動判定は行いません。

比較元のハッシュ値が、ファイルと同じ不正な配布元によって置き換えられていれば、両者が一致しても送信元の真正性は確認できません。公式サイト等の信頼できる経路で公開された値を使用し、署名検証が提供されている場合は、その案内にも従ってください。

処理仕様

  • テキストは入力欄の現在値をUTF-8のバイト列へ変換して処理します。入力欄ではブラウザによってCRLF・CR改行がLFへ統一されます。元の改行コードを含むファイルのバイト列をそのまま調べる場合は、ファイル入力を使用してください。
  • 入力欄から取得した値に対して、前後空白、タブ、末尾改行、バックスラッシュの追加・削除やUnicode正規化は行いません。
  • 空文字列と0バイトのファイルも有効な入力です。
  • ファイル形式や拡張子は問いません。ファイル名、MIME type、更新日時はハッシュ値に含めず、ファイル本体だけを処理します。
  • 結果は接頭辞や空白を含まない小文字の16進数です。
  • ファイル全体をメモリへ読み込むため、初版の上限を100 MiBとしています。

注意点

  • SHA-1は既存データとの互換性確認用です。NISTも暗号学的保護でのSHA-1からの移行を進めているため、新規用途ではSHA-256以上を選んでください(NISTのSHA-1移行案内)。
  • ハッシュは暗号化ではないため、元データへ復号する機能はありません。ハッシュ値の一致だけで、ファイルが無害であることや送信元の真正性も保証できません。
  • このツールはソルト、計算コスト、秘密鍵を使用しません。パスワード保存には適切なソルトとコスト係数を持つ方式が必要なため、このツールで生成したSHA値を保存用パスワードハッシュとして使用しないでください(NIST SP 800-63B)。
  • HMAC、電子署名、複数ファイルの一括処理には対応していません。

よくある質問

見た目が同じテキストなのにハッシュ値が違うのはなぜですか?

ハッシュは見た目ではなく、UTF-8へ変換した正確なバイト列から計算します。このツールはUnicode正規化を行わないため、合成済みのが(U+304C、3バイト)と、か+結合用濁点(U+304B U+3099、6バイト)は別の入力です。SHA-256は前者がe3b21956ce958d2599e4e122f5395b8bb776552bd4ceae0c6bec80e4f73a2905、後者がf62b28f746dd75126c7aa8a11b16c2f6e18ecdfc6d62b8488b8e8637d3a2178dになります。空白、タブ、実際の改行、末尾改行の違いでも結果は変わります。

16進数の大文字と小文字は別のハッシュ値ですか?

A〜Fの大文字・小文字は、同じバイト列を表す16進数表記の違いです。このツールは小文字で出力します。比較元が大文字の場合は英字の大小をそろえて値全体を比較し、文字の省略や別アルゴリズムの値との比較はしないでください。

入力データについて

入力したテキストと選択したファイルはブラウザ内だけで処理され、ToolRollのサーバーへ送信されません。外部APIや外部ライブラリも使用しません。