本文へスキップ
App Museum
English

ハッシュ生成ツール

テキストやファイルのMD5・SHA-1・SHA-256・SHA-384・SHA-512ハッシュ値をまとめて計算し、16進数かBase64で表示。秘密鍵を使うHMACの計算と、配布元のチェックサムやWebhook署名との照合にも対応。

入力の種類

入力すると、ハッシュ値の代わりにこの鍵を使ったHMACを計算します。「テキスト」の鍵は前後の空白も含めて入力したとおりに使い、「16進数」「Base64」の鍵は空白を除いてバイト列に戻して使います。

秘密鍵の形式
表示形式

使い方

  1. 「入力の種類」で「テキスト」か「ファイル」を選びます
  2. テキストを入力するか、ファイル(最大100MB)を選びます
  3. 「ハッシュを計算」を押すと、MD5・SHA-1・SHA-256・SHA-384・SHA-512のハッシュ値が16進数で並びます
  4. 各行の「コピー」で、そのハッシュ値をコピーできます
  5. 配布元が公開しているハッシュ値と比べたいときは、「照合するハッシュ値」に貼り付けます。一致したアルゴリズムの行に「✓ 一致」と表示されます
  6. HMAC(秘密鍵を使うハッシュ)を計算したいときは、「HMACの秘密鍵」に鍵を入力してから「HMACを計算」を押します
  7. 結果をBase64で見たいときは、「表示形式」で「Base64」を選びます。計算し直さずに表示が切り替わります

計算はすべてブラウザ内で行われ、テキストやファイルがサーバーへ送信されることはありません。

具体例

テキストに abc と入力して「ハッシュを計算」を押すと、次の値が表示されます。

  • MD5: 900150983cd24fb0d6963f7d28e17f72
  • SHA-1: a9993e364706816aba3e25717850c26c9cd0d89d
  • SHA-256: ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad

SHA-384は96桁、SHA-512は128桁の値になります。入力のサイズは「3バイト」と表示されます。

ファイルのチェックサムを確認する

ダウンロードしたファイルが配布元のものと同じかを確かめるには、次の手順で照合します。

  1. 「ファイル」を選び、ダウンロードしたファイルを指定します
  2. 配布ページに書かれているハッシュ値(チェックサム)を「照合するハッシュ値」に貼り付けます
  3. 「ハッシュを計算」を押します

16進数の値は、大文字・小文字と途中の空白や改行を無視して比べます。Base64で書かれた値もそのまま照合できます(Base64は大文字・小文字で値が変わるので、区別して比べます)。どのアルゴリズムの値か、16進数かBase64かを選ぶ必要はなく、5種類のいずれかと一致すればそのアルゴリズム名が表示されます。16進数かBase64かが表示中の形式と違うときは、一致の表示に「(貼り付けた値はBase64)」のように添えます。「どのハッシュ値とも一致しません」と表示された場合は、ファイルが壊れているか、別のファイルである可能性があります。

HMACを計算する

HMACは、データと秘密鍵の両方から計算する値です。鍵を知っている人だけが同じ値を作れるので、Webhook や API のリクエストが正しい送信元から届いたか、途中で書き換えられていないかの確認に使われます。

「HMACの秘密鍵」に鍵を入力すると、ボタンが「HMACを計算」に変わり、ハッシュ値の代わりに HMAC-MD5・HMAC-SHA-1・HMAC-SHA-256・HMAC-SHA-384・HMAC-SHA-512 の5つが並びます。鍵の欄を空にすると、ふつうのハッシュ値の計算に戻ります。

たとえば鍵に key、テキストに The quick brown fox jumps over the lazy dog を入力すると、次の値になります。

  • HMAC-MD5: 80070713463e7749b90c2dc24911e275
  • HMAC-SHA-1: de7c9b85b8b78aa6bc8a7a36f70a90701c9db4d9
  • HMAC-SHA-256: f7bc83f430538424b13298e6aa6fb143ef4d59a14946175997479dbc2d1a3cd8

同じ HMAC-SHA-256 を Base64 で書くと 97yD9DBThCSxMpjmqm+xQ+9NWaFJRhdZl0edvC0aPNg= になります。「表示形式」で「Base64」を選ぶと、5つの値をこの形で表示し、コピーもBase64の値になります。

Webhook の署名を確かめるには、受け取ったリクエストの本文をそのままテキストに貼り、鍵を入力し、ヘッダーの署名を「照合するハッシュ値」に貼り付けます。sha256=f7bc… のように先頭にアルゴリズム名が付いた形(GitHub の X-Hub-Signature-256 など)は、そのまま貼り付けて照合できます。この場合は、名前が付いたアルゴリズムの値とだけ比べます。Shopify の X-Shopify-Hmac-Sha256 のように Base64 で書かれた署名も、そのまま貼り付けて照合できます。URL向けの Base64(+ と / の代わりに - と _ を使う形)や、末尾の = を省いた形も読めます。

「秘密鍵の形式」では、鍵に入力した文字をどう読むかを選びます。

  • テキスト(UTF-8): 入力した文字をUTF-8のバイト列にして使います。前後の空白も鍵の一部です
  • 16進数: 6b6579 のような値を、2文字で1バイトのバイト列に戻して使います。先頭の 0x、大文字・小文字、空白や改行は無視します
  • Base64: Base64で書かれた値をバイト列に戻して使います。URL向けの形式や、末尾の = を省いた形も読めます。空白や改行は無視します

たとえば16進数の 6b6579 と Base64 の a2V5 は、どちらもテキストの key と同じ3バイトなので、上の例と同じ値になります。HMACを計算すると鍵のバイト数を「秘密鍵のサイズ」に表示するので、戻した鍵の長さが配布元の説明と合っているかを確かめられます。選んだ形式として読めない鍵では計算せず、その旨を表示します。

本文は1バイトでも違うと別の値になります。整形し直したJSONではなく、届いたままの本文を使ってください。

アルゴリズムの違い

  • MD5(128ビット・32桁): 古いチェックサムとの照合に使います。改ざん検知には使いません
  • SHA-1(160ビット・40桁): 古いチェックサムとの照合に使います。改ざん検知には使いません
  • SHA-256(256ビット・64桁): 現在の標準です。ファイルの検証や署名で広く使われます
  • SHA-384(384ビット・96桁): Subresource Integrity(SRI)などで使われます。integrity 属性に書かれた1つの sha384-… の値は、そのまま「照合するハッシュ値」に貼り付けられます
  • SHA-512(512ビット・128桁): より長いハッシュ値が必要な場合に使います

FAQ

MD5やSHA-1は使ってもよいですか?

MD5とSHA-1は、同じハッシュ値になる別のデータを意図的に作れることが知られています。転送中に壊れていないかの確認には使えますが、改ざんされていないことの確認や署名には SHA-256 以上を使ってください。

パスワードの保存に使えますか?

いいえ。このツールのハッシュは高速に計算できるため、パスワードの保存には向きません。パスワードの保存には、bcrypt・scrypt・Argon2 のような専用の方式を使ってください。

HMACとふつうのハッシュ値は何が違いますか?

ふつうのハッシュ値は、データが同じなら誰が計算しても同じ値になります。HMACは秘密鍵も使って計算するので、鍵を知らない人は正しい値を作れません。データを書き換えた人がハッシュ値も一緒に書き換えることを防ぎたい場合は、HMACを使います。

本番の秘密鍵を入力しても大丈夫ですか?

鍵もテキストもブラウザ内だけで処理し、送信も保存もしません。ただし、画面を見られる場所や共用のパソコンでは、本番の鍵を入力しないでください。動作の確認には、テスト用の鍵を使うと安全です。

日本語のテキストはどう扱われますか?

テキストはUTF-8のバイト列に変換してからハッシュ化します。たとえば こんにちは は15バイトとして計算され、SHA-256は 125aeadf27b0459b8760c13a3d80912dfa8a81a68261906f60d87f4a0268646c になります。Shift_JISなど別の文字コードで計算した値とは一致しません。

ほかのツールで計算した値と一致しません

末尾の改行や空白の有無を確認してください。入力欄の内容は、改行や空白も含めてそのままハッシュ化します。たとえばコマンドの echo abc | sha256sum は末尾に改行を付けるため、abc だけを入力した場合とは別の値になります。

何も入力せずに計算するとどうなりますか?

0バイトのデータのハッシュ値が表示されます。たとえばMD5は d41d8cd98f00b204e9800998ecf8427e です。空のファイルのハッシュ値と同じです。

どのくらいの大きさのファイルまで計算できますか?

100MBまでです。ファイル全体をブラウザのメモリに読み込んで計算するため、上限を設けています。

入力したデータは保存されますか?

いいえ。処理はすべてブラウザ内で完結し、ページを再読み込みすると消えます。

種別
ユーティリティ
カテゴリ
開発者向け
タグ
hash
md5
sha256
hmac
checksum
security
  • TOTP生成ツール(ワンタイムパスワード)

    Base32の秘密鍵から、2段階認証で使う6桁のワンタイムパスワード(TOTP)をブラウザ内で計算。前後のコードとの照合、SHA-256・8桁などの設定、otpauth:// URIの読み込みと作成、認証アプリで読み取るQRコードの表示に対応。

    ユーティリティ開発者向けtotpotp2faauthenticatorsecuritygeneratorqr
  • Basic認証・.htpasswd生成ツール

    Basic認証の .htpasswd に書く「ユーザー名:ハッシュ」の行を、bcrypt・MD5($apr1$)・SHA-512($6$)・SHA-256($5$)・SHA-1 で作ります。パスワードはブラウザの中だけで計算します。.htaccess と nginx の設定、curl での確認コマンド、既存の .htpasswd とパスワードの照合、Authorization ヘッダーの読み取りもできます。

    ユーティリティ開発者向けhtpasswdbasic-authbcrypthtaccessapachenginxpasswordhash
  • パスワード強度チェッカー

    入力したパスワードの強さを、よく使われるパスワード・単語・キーボードの並び・日付などの見つけやすさから判定。破られるまでの時間の目安、弱い部分、NISTと総務省の目安との照らし合わせも。日本の名字・名前のローマ字、和暦、JIS配列にも対応し、送信はしません。

    ユーティリティ開発者向けpasswordsecuritystrengthcheckerzxcvbn