使い方
- 文字列に文字を入力するか、貼り付けます。
- 通常のハッシュ値にするには鍵(任意)を空欄のままにします。HMACを得るには鍵を入力します。
- 各行からハッシュ値をコピーするか、CSVでダウンロードで表全体を保存します。
- 最初の列のアルゴリズムを、使っているシステムや文書が求めるものと照らし合わせてください。
ハッシュとは
ハッシュ関数は、どんな文字列でも固定長の符号に変換します。この符号をハッシュ値(ダイジェスト)と呼びます。同じ文字列からは必ず同じハッシュ値が得られ、少しでも変えると全く別の値になります。ハッシュ値から元の文字列に戻すことはできません。このページでは、ハッシュ値を16進数で表示します。MD5は32桁、SHA-1は40桁、SHA-256は64桁、SHA-384は96桁、SHA-512は128桁です。
16進数の桁数 = ビット数 ÷ 4
MD5 128 ÷ 4 = 32
SHA-256 256 ÷ 4 = 64
SHA-512 512 ÷ 4 = 128
どのアルゴリズムを使うか
MD5とSHA-1は破られています。同じハッシュ値になる、異なる文字列を見つけられるため、署名や証明書には使ってはいけません。それでも古いシステムには残っており、ダウンロードが偶然壊れていないかを手早く確かめる目的には使えます。SHA-256とSHA-512は現在の標準であるFIPS 180-4に含まれ、一般的な選択です。
パスワードを保存するには、Argon2やbcryptのようなパスワード用のハッシュ関数を使ってください。このページのどのハッシュ値も、その目的のためのものではありません。
HMAC:鍵を使ったハッシュ値
HMAC(RFC 2104)は、鍵とハッシュ関数を決まった方法で組み合わせたものです。鍵を知っている人だけが同じHMACを作れるため、そのメッセージが既知の送信者から来て、途中で変更されていないことを示せます。このページは、通常のハッシュ値と同じアルゴリズムでHMACを計算します。
文字列はバイト列
- 文字列はUTF-8のバイト列(RFC 3629)としてハッシュ化されます。ASCIIの英数字は1バイト、ğのようなアクセント付きの欧文字は2バイト、ひらがなや漢字は3バイト、絵文字は4バイトです。
- 改行コードや文字コードが違う、または空白が1つ多いだけで、ハッシュ値は変わります。他のツールと同じバイト列をハッシュ化してください。
計算例:abcとHMAC
文字列abcのハッシュ値は公開されている値です。MD5はRFC 1321に、SHA-1、SHA-256、SHA-384、SHA-512はFIPS 180-4にあります。
鍵をJefe、文字列をwhat do ya want for nothing?とすると、HMAC-SHA-256は5bdcc146bf60754e6a042426089575c75a003f089d2739839dec58b964ec3843になります。これはRFC 4231のテストケース2の値です。
| アルゴリズム | abcのハッシュ値 |
|---|---|
| MD5 | 900150983cd24fb0d6963f7d28e17f72 |
| SHA-1 | a9993e364706816aba3e25717850c26c9cd0d89d |
| SHA-256 | ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad |
| SHA-384 | cb00753f45a35e8bb5a03d699ac65007272c32ab0eded1631a8b605a43ff5bed8086072ba1e7cc2358baeca134c825a7 |
| SHA-512 | ddaf35a193617abacc417349ae20413112e6fa4e89a97ea20a9eeee64b55d39a2192992a274fc1a836ba3c23a3feebbd454d4423643ce80e2a9ac94fa54ca49f |
よくある質問
MD5はパスワードの保存に安全ですか?
安全ではありません。MD5は計算が速く、破られているため、漏えいしたMD5のパスワードのハッシュ値は解読されやすくなります。パスワードは、Argon2やbcryptのようなパスワード用のハッシュ関数で保存してください。
SHA-256は暗号化と同じですか?
いいえ。ハッシュは一方向で、元の文字列に戻せず、鍵も使いません。暗号化は正しい鍵があれば元に戻せます。整合性の確認にはハッシュ、メッセージが鍵を知る人から来たことの確認にはHMACを使ってください。
ハッシュとHMACの違いは何ですか?
ハッシュは文字列だけで決まります。HMACは秘密の鍵も必要とするため、鍵を持つ人だけが作成や検証をできます。WebhookやAPIの署名は、たいていHMAC-SHA-256です。
他のツールとハッシュ値が違うのはなぜですか?
バイト列が同じでなければなりません。改行コードが違う、Windows-1254のように文字コードが違う、空白が1つ多いといったことで、すべてのハッシュ値が変わります。他のツールがハッシュ化するのと同じバイト列をハッシュ化してください。
入力した文字列は、どこかに送られますか?
いいえ。ハッシュ値はお使いのブラウザの中で計算され、文字列がアップロードされることも、保存されることもありません。
このツールでファイルを確かめられますか?
このページは文字列だけをハッシュ化します。ファイルの場合は、ファイルチェックサム検証ツールか、ダウンロードサイトが公開しているチェックサムを使ってください。
出典
- RFC 1321:The MD5 Message-Digest Algorithm(英語)
- NIST FIPS 180-4:Secure Hash Standard、SHA-1とSHA-2ファミリー(英語)
- RFC 2104:HMAC、メッセージ認証のための鍵付きハッシュ(英語)
- RFC 4231:HMAC-SHA-224、-256、-384、-512のテストベクター(英語)
数値と文章の最終確認日:2026年11月10日火曜日。