ハッシュ生成

任意のテキストやファイルの MD5、SHA-1、SHA-256、SHA-384、SHA-512、 SHA-3、Keccak-256、RIPEMD-160、BLAKE2b、BLAKE2s ダイジェストを計算します — チェックサム、整合性検査、キャッシュキーに便利。 期待されるダイジェストを貼り付けて入力と照合したり、未知のハッシュ文字列を貼って どのアルゴリズムで作られた可能性が高いか識別したりできます。 SHA-1/256/384/512 はブラウザー内蔵の WebCrypto、残りは自己完結した 純 JavaScript 実装なので、すべてローカルで動作します。 シード付き乱数列には乱数生成もご覧ください。
完全にローカルで動作します — 何もアップロードされません。入力は最大 200 MB。
入力: アルゴリズム:
出力形式: SHA-1 はレガシー — 必要がない限り SHA-256/512 を推奨。
ダイジェスト行は「アルゴリズム ハッシュ」の形式なので、リリースノートやダウンロードマニフェストにそのままコピーできます。
ダウンロードページやマニフェストが示すダイジェストを貼り付けてください。ツールは大小文字、スペース、コロン、sha256= 形式のプレフィックス、MD5 (file.exe) = 形式のラッパー、複数行の md5sum 出力を許容し、上でチェックしたアルゴリズムと比較します。
未知のハッシュ文字列を貼り付けてください。ツールは長さ、文字セット、プレフィックスを読み、それを生成しえたアルゴリズムを列挙します — 素の 16 進ダイジェストから $2b$… や $argon2id$… のような PHC 形式パスワードハッシュまで。
アルゴリズムの選び方:
SHA-256 は今日の整合性チェックの妥当なデフォルトです。SHA-512 はより強く、64 ビットハードウェアではより速く動作しますが、出力が長くなります。SHA-384 は、短いタグ長を要求されるプロトコルで SHA-2 ダイジェストが必要なときの中間の選択肢です。SHA-3 は独立に設計された NIST 標準(SHA-2 のアップグレードではない)で、SHA-2 と系譜を共有しないアルゴリズムが必要なときの標準的な答えです。Keccak-256 は Ethereum などいくつかのシステムが使う標準化前の亜種で、SHA3-256 とは 1 バイトのパディングだけが違います。BLAKE2b/BLAKE2s はソフトウェア用途のために設計された高速な現代のハッシュ、RIPEMD-160 は Bitcoin と OpenPGP で現役の古い設計です。SHA-1 と MD5 は敵対的入力に対しては暗号学的に破られていますが、重複排除、レガシーシステム、非対抗的チェックサムとしては今も正しく広く使われています — 攻撃者が内容を選べる場所では決して使わないでください。 今日、「耐量子」のハッシュは存在しません — 量子コンピューターが最初に脅かすのは署名と鍵交換です — Grover のアルゴリズムはハッシュの実効長を半分にするだけなので、SHA-256 は実用的な境界を快適に超えています。ハッシュは決定論的です:同じバイトは常に同じダイジェストを生み、これこそがダウンロードや設定ファイルの無傷性検証に役立つ理由です。
中国国家規格のハッシュをお探しですか?
SM3(GB/T 32905-2016)— 中国の商用暗号で義務づけられたダイジェスト — はこのページには含まれません。HMAC-SM3 対応の専用ツールが SM3 ハッシュ生成ページにあり、SM スイートの他のメンバー — SM4 暗号化 / 復号(ブロック暗号)、 SM2 暗号化 / 復号 / 署名(署名と暗号化)、 SM9 ID ベース暗号(ID ベース暗号)— と並んでいます。
ハッシュ生成 — すべてのアルゴリズムをゼロから解説
一文で言うと:暗号学的ハッシュ関数は一方向のミキサーです — 任意のバイト列を固定長の指紋に絞り込み、同じ入力は常に同じ指紋を与えますが、指紋から入力を再構築する手がかりは何も得られません。このページはその 11 種をすべてブラウザータブ内で実行します。

以下のすべてのアルゴリズムを同じ 4 ステップで説明します:平易な言葉でそれが何か、数式なしの直感的な仕組み、今日でも使うべきか、そして最もよくある誤用。

MD5

それが何か。MD5(1992)は任意の入力を 128 ビット(16 進 32 文字)の指紋に圧縮します。1990 年代のコンピューターで高速になるよう設計され、実際に高速です — だからこそ今もどこにでもあります:ソフトウェアのダウンロードページ、ファイル重複排除キャッシュ、レガシーデータベースキー。

直感的な仕組み。入力は 64 バイトのチャンクに切られます。各チャンクは 128 ビットのローリング状態に 4 回(わずかに異なる 4 つの混合ラウンドで)かき混ぜられ、最後のチャンクの後、状態がダイジェストとして出力されます。かき混ぜは加算・回転・表引きで構成されます — 当時も今も安価です。

使うべきか?だます意図のないチェックサム — 破損ダウンロードの検出、重複ファイルの発見 — には、はい、今も破損を完璧に報告します。対抗的な用途には、いいえ:2004 年以来、研究者は同じ MD5 を持つ 2 つの異なるファイルを数秒で作れてしまい、MD5 衝突を使った実在の証明書偽造が 2008 年に起きました。鍵ではなくシリアル番号として扱ってください。

よくある誤用。パスワードに MD5 を使う(速すぎます — 本来のものはパスワードハッシュ生成を参照);攻撃者も MD5 を公表しているのに「MD5 が一致するから」とファイルを信じる;ハッシュだけではなく MD5 (file) = hash 行全体を貼る — 上の照合ボックスはどちらも受け付けます。

SHA-1

それが何か。SHA-1(1995、NSA)は 160 ビット(16 進 40 文字)のダイジェストを生成します。20 年間、Git、TLS 証明書、PGP 署名のデフォルト整合性ハッシュでした。

直感的な仕組み。MD5 と同じファミリのレシピですが、状態は 160 ビット、64 バイトのチャンクごとに 80 混合ラウンド、より広い操作セットです。余分なラウンドは、ミキサーの逆解析を難しくするためのものでした。

使うべきか?対抗的な用途には、いいえ。理論的な破壊は 2017 年に実用化され、Google が同一の SHA-1 値を持つ 2 つの異なる PDF を生成しました(SHAttered 攻撃、約 6,500 CPU 年)。Git は今も SHA-1 の下にオブジェクトを保管しますが、識別子としてのみ扱い、衝突検出を追加しました。新しい仕事には SHA-256 か SHA-3 を使ってください。

よくある誤用。160 ビットなら「まだ十分長い」と信じること — 破壊は総当たりではなく内部構造に関するものです。RIPEMD-160 と SHA-1 を、どちらも 16 進 40 文字だからと混同すること(上の識別ボックスは両者を区別します)。

SHA-2:SHA-256、SHA-384、SHA-512

それが何か。SHA-2 ファミリ(2001、NSA)は現代の整合性チェックの主力です。SHA-256 は 256 ビット(16 進 64 文字)、SHA-512 は 512 ビット、SHA-384 は結果を 384 ビットに切り詰めた SHA-512 です — プロトコルが短いタグを義務づけるときに有用。

直感的な仕組み。64 バイト(512 ビット系は 128 バイト)のチャンクが、64(または 80)ラウンドの加算-回転-混合ステップで 8 ワードの状態に畳み込まれます。MD5 と違い、スケジュールはまず各チャンクを拡張バッファに伸ばし、これが MD5 と SHA-1 を破った攻撃スタイルを退けました。知っておく価値のある豆知識:64 ビット CPU では SHA-512 のほうが SHA-256 より速い — 1 ラウンドあたり 64 ビット演算で 2 倍のデータを処理するからです。

使うべきか?はい — SHA-256 は今日のファイルチェックサム、コード署名、証明書フィンガープリントのデフォルトの答えで、20 年の解析を経ても実用的な破壊は知られていません。より大きな余裕が欲しいとき、またはプラットフォームが高速に実行するときは SHA-384/512 を使ってください。

よくある誤用。パスワードに SHA-256 単体を使う — これは高速ハッシュであり、そこでは速度が敵です(bcrypt/scrypt/Argon2id を使う)。対抗的な衝突耐性の設定でダイジェスト長と強度を混同する — 長さは上限を設定するだけです。

SHA-3(SHA3-256 / SHA3-512)と Keccak-256

それが何か。SHA-3(2015、Bertoni、Daemen、Peeters、Van Assche の Keccak 応募から標準化)は 3 番目の NIST ハッシュ標準です。SHA-2 の内部と何も共有しません — SHA-2 が万一陥った場合の独立バックアップとして、まさにそのために選ばれました。

直感的な仕組み。チャンクを小さな状態に通す代わりに、Keccak は「吸って絞る」を繰り返します:入力は 5×5×64 ビットのスポンジにビットごとに吸収され、スポンジ全体が固定置換(状態全体にわたる 24 ラウンドのビット演算)で攪拌され、その後ダイジェストビットが絞り出されます。スポンジの絵がアイデアのすべてです:容量ビットは決して出力されず、それが関数を一方向にしています。

Keccak-256 と SHA3-256。ちょうど 1 バイトのパディングだけが違います。Keccak チームの元の応募は最終ブロックを 0x01 でパディングし、NIST は標準のパディングを 0x06 に変えました。Ethereum は元のパディングを採用したため、その「keccak256」はすべての入力について標準 SHA3-256 と異なります。このページは両方を別々にチェックして提供します。

使うべきか?はい — ポリシーが非 SHA-2 アルゴリズムを求めるときの第一選択としても、エコシステムがすでにそれを話している場所でも。よくある誤用:SHA3-256 と Keccak-256 を交換可能と仮定する(違います — 同じ入力に対するこのページの 2 つの行を比較してください)。「SHA-3」が SHA-2 に取って代わると仮定する — 両方安全で、SHA-2 のほうが広く展開されたままです。

RIPEMD-160

それが何か。RIPEMD-160(1996、ヨーロッパ学術コンソーシアム RIPE、Dobbertin、Bosselaers、Preneel が強化)は 160 ビットを出力します。完全にヨーロッパの設計で、NSA 設計の SHA ファミリから意図的に独立しています。

直感的な仕組み。各 64 バイトチャンクは、異なる定数と回転量を持つ80 ラウンドの 2 本の平行ラインで処理され、最後に 2 本のラインと旧状態が結合されます。2 トラック構造は、他の 1990 年代ハッシュを破っていた差分攻撃への設計者たちの抵抗でした。

使うべきか?実際には、主に他のシステムの中で生き残っています:Bitcoin アドレスは公開鍵を RIPEMD-160(SHA-256(pk)) でハッシュし、古い OpenPGP 鍵はハッシュオプションとして提供し、BitTorrent v1 のピースには SHA-1 と並ぶ伝統的ハッシュです。実用的な衝突攻撃はありませんが、160 ビットというサイズはこのページで最も小さい安全余裕です。新しい単独用途には SHA-256 か SHA-3を推奨します。

よくある誤用。2 本の平行ラインが「強度を 2 倍にする」と信じる — 衝突耐性を制限するのは出力サイズです。SHA-1 と混同する(どちらも 16 進 40 文字。上の識別ボックスは両方の可能性を並記します)。

BLAKE2b-512 と BLAKE2s-256

それが何か。BLAKE2(2013、Aumasson、Neves、Wilcox-O’Hearn、Winnerlein)はソフトウェア速度のために設計されたハッシュです:BLAKE2b は 64 ビットプラットフォーム向けで最大 512 ビット出力、BLAKE2s は 32 ビットプラットフォーム向けで最大 256 ビット出力。

直感的な仕組み。SHA-3 ファイナリストの BLAKE の子孫で、その核はストリーム暗号 ChaCha から借りたキー付き置換です:4×4 のワード行列が、列と対角の混合ステップの交互で — まず上から下に、次に対角線に沿ってシャッフルするように — チャンクごとに 12(BLAKE2b)または 10(BLAKE2s)ラウンド攪拌されます。これらのステップが CPU 命令に美しく写るため、BLAKE2 は MD5 より速いことが多く、SHA-3 に匹敵する安全性を提供します。

使うべきか?はい — 完全に現代的で破られていない設計で、性能敏感なソフトウェア(一部のエコシステムのパッケージ整合性、コンテンツアドレスストレージ、バックアップ重複排除)や高速 MAC として人気です。このページでは、BLAKE2b-512 が最長のダイジェスト、BLAKE2s-256 がコンパクトな現代の選択肢です。

よくある誤用。「速いのは弱いはず」と考える — BLAKE2 は手抜きではなく設計によって速い。BLAKE2 がキー(MAC になる)やパーソナライズ文字列も受け付けることに気づかない — このページは常にプレーンなキーなしモードで使います。

照合ボックスと識別ボックスの読み方

照合。照合ボックスは貼り付けられたものを正規化します — 大小文字、2 桁ごとのコロン、sha256= プレフィックス、BSD 形式の SHA256 (file) = hash ラッパー、ハッシュの後にファイル名が続く GNU md5sum 行、混入した \r\n — その後、チェックしたすべてのアルゴリズムを現在の入力(テキストまたは選択したファイル)に対して再計算し、一致した各アルゴリズムを報告します。緑の一致は「これらのバイトは発行者がハッシュしたものと正確に同じ」を意味し、赤はチェックしたアルゴリズムのどれもそれを生成しなかったことを意味します — アルゴリズムを追加でチェックするか、貼り付けが途切れていないか確認してください。

識別。識別ボックスは何もハッシュしません。文字列の形を読みます。長さが候補を絞ります:16 進 32 文字は MD5 の可能性、40 は SHA-1 か RIPEMD-160、64 は SHA-256 / SHA3-256 / Keccak-256 / BLAKE2s-256、96 は SHA-384、128 は SHA-512 / SHA3-512 / BLAKE2b-512。プレフィックスはパスワードハッシュを明かします($2a$/$2b$/$2y$ bcrypt、$argon2id$、$scrypt$、$6$ sha512crypt、$1$ MD5-crypt)— それらは別の種であり(パスワードハッシュ生成を参照)、このページは意図的に計算しません。+、/、= を含み長さが 4 の倍数の文字列は、16 進ダイジェストより Base64 エンコードデータの可能性が高い。ツールはそれをデコードし、対応するバイト長を報告します。

識別にできることとできないこと。長さと文字セットは形式の指紋であって、アルゴリズムの証明ではありません:16 進 64 文字の 2 つの文字列は、SHA-256 から来たかもしれなければ切り詰められた SHA-512 から来たかもしれません。識別は可能性を順位付けします。あなたのバイトが実際にどのアルゴリズムと一致するかを証明するのは照合ボックスのほうです。

11 種を一目で
アルゴリズム ダイジェスト 考案 「The quick brown fox jumps over the lazy dog」のダイジェスト
MD5128 ビット19929e107d9d372bb6826bd81d3542a419d6
SHA-1160 ビット19952fd4e1c67a2d28fced849ee1bb76e7391b93eb12
SHA-256256 ビット2001d7a8fbb307d7809469ca9abcb0082e4f8d5651e46d3cdb762d02d0bf37c9e592
SHA-384384 ビット2001ca737f1014a48f4c0b6dd43cb177b0afd9e5169367544c494011e3317dbf9a509cb1e5dc1e85a941bbee3d7f2afbc9b1
SHA-512512 ビット200107e547d9586f6a73f73fbac0435ed76951218fb7d0c8d788a309d785436bbb642e93a252a954f23912547d1e8a3b5ed6e1bfd7097821233fa0538f3db854fee6
SHA3-256256 ビット201569070dda01975c8c120c3aada1b282394e7f032fa9cf32f4cb2259a0897dfc04
SHA3-512512 ビット201501dedd5de4ef14642445ba5f5b97c15e47b9ad931326e4b0727cd94cefc44fff23f07bf543139939b49128caf436dc1bdee54fcb24023a08d9403f9b4bf0d450
Keccak-256256 ビット2015 年以前4d741b6f1eb29cb2a9b9911c82f56fa8d73b04959d3d9d222895df6c0b28aa15
RIPEMD-160160 ビット199637f332f68db77bd9d7edd4969571ad671cf9dd3b
BLAKE2b-512512 ビット2013a8add4bdddfd93e4877d2746e62817b116364a1fa7bc148d95090bc7333b3673f82401cf7aa2e4cb1ecd90296e3f14cb5413f8ed77be73045b13914cdcd6a918
BLAKE2s-256256 ビット2013606beeec743ccbeff6cbcdf5d5302aa855c256c29b88c8ed331ea1a6bf3c8812

上の表のすべてのダイジェストは、まさにこのページのエンジンが生成したものです — すべてのアルゴリズムにチェックを入れ、サンプルをクリックして比較してください。SHA-3、Keccak、RIPEMD-160、BLAKE2 の行は、このサイトの暗号ツール群で共有される自己ホストの crypto-shared.js カーネルから来ています。

よくある質問

ダウンロードにはどのボックスを信じるべき?照合ボックスに SHA-256 をチェックして — 今日の大半の発行者は SHA-256 か SHA-512 を署名しています。識別ボックスは候補を名指しするだけです。そのファイルについて何も証明しません。

なぜ Keccak-256 がリストにいるの?Ethereum、Swarm、いくつかの台帳システムが標準化前のパディングで標準化したからです。Ethereum の keccak256 を検証するには、SHA3-256 ではなくその行を使わなければなりません。

2 つの異なる入力が同じダイジェストを共有できる?理論上は、はい — 無限に多くの入力が有限のダイジェスト集合に写ります(鳩の巣原理)。実践では、宇宙の熱的死までにそのような組を見つけることが「衝突耐性」の意味するところで、MD5 と SHA-1 を除く上のすべてのアルゴリズムは今なお立っています。

ハッシュは暗号化?いいえ。暗号化は鍵で元に戻せます。ハッシュは一方向のミキサーです。このページの何ものも、あなたのテキストに「復号」されて戻ることはありません — それは制限ではなく機能です。