ハッシュ生成ツール
テキストからMD5・SHA-1・SHA-256・SHA-384・SHA-512のハッシュ値を即時生成。HEX・Base64形式出力、全アルゴリズム一括生成に対応。
256bit — 最も広く使われる標準的なハッシュ
テキストからMD5・SHA-1・SHA-256・SHA-384・SHA-512のハッシュ値を即時生成。HEX・Base64形式出力、全アルゴリズム一括生成に対応。
256bit — 最も広く使われる標準的なハッシュ
ハッシュ(Hash)とは、任意の長さのデータを固定長の値に変換する一方向関数の出力です。同じ入力からは常に同じハッシュ値が得られますが、ハッシュ値から元のデータを復元することはできません。
本ツールは5種類のハッシュアルゴリズムに対応しています。用途に応じて適切なアルゴリズムを選択してください。
1991年に設計されたハッシュ関数です。高速で広く普及していますが、衝突攻撃が実証されており、セキュリティ用途には使用すべきではありません。ファイルのチェックサムなど非セキュリティ用途では今でも使われています。
NSAが設計し1995年に公開されたハッシュ関数です。MD5より強力ですが、2017年にGoogleが実用的な衝突を実証(SHAttered攻撃)しており、セキュリティ用途では非推奨です。
SHA-2ファミリーの一つで、現在最も広く使われている標準的なハッシュアルゴリズムです。SSL/TLS証明書、ブロックチェーン(Bitcoin等)、ソフトウェアの配布検証など幅広い場面で採用されています。
SHA-512の出力を384bitに切り詰めたバリエーションです。SHA-256より高いセキュリティ強度が必要な場合に使用されます。
SHA-2ファミリーで最も長い出力を持つアルゴリズムです。64bit CPUでは内部演算が64bitのため、SHA-256より高速に動作する場合があります。最高レベルのセキュリティ強度が求められる場面に適しています。
本ツールを使ってハッシュ値を生成する手順を説明します。
「全アルゴリズムで一括生成」ボタンを使うと、5種類すべてのアルゴリズムで同時にハッシュ値を生成できます。アルゴリズム間の出力の違いを比較する際に便利です。
ハッシュアルゴリズムを選択する際は、以下の点にご注意ください。
本ツールの処理はすべてブラウザ内で完結しており、入力データがサーバーに送信されることはありません。
0.1 + 0.2 が 0.3 にならない本当の理由 — IEEE 754 浮動小数点をビットで読む
JavaScript / Python / Java / C — どの言語で書いても 0.1 + 0.2 は 0.30000000000000004 になります。 これはバグではなく、 ほぼ全ての現代コンピュータが採用する IEEE 754 浮動小数点規格の必然です。 二進小数で 0.1 が無限循環することから、 binary32 / binary64 / binary16 のビット構造、 そして金額計算で fp を使ってはいけない理由まで、 ビット可視化ツールで一つずつ確かめます。
chmod 755 / 644 / 600 完全ガイド — setuid と sticky の罠まで一気に理解する
Linux/Unix のパーミッション 755 / 644 / 600 を「なんとなく」 で使っていませんか? 「4=read, 2=write, 1=execute」 の意味から、 rwx ↔ 8進 の即変換、 setuid / setgid / sticky の特殊ビット、 SSH 秘密鍵が 600 でないと弾かれる理由、 /tmp が 1777 である理由、 そして 4755 (setuid) が現代のセキュリティ慣行では避けられる事情まで、 POSIX 標準と Linux man page を一次ソースに整理します。
ハッシュ関数はなぜ「元に戻せない」のか — MD5の崩壊からSHA-3まで
ハッシュ関数の一方向性はどこから来るのか。2004年の王小雲によるMD5衝突攻撃、2017年のGoogleによるSHA-1 SHAttered、SHA-256のMerkle-Damgård構造、SHA-3のスポンジ構造を一次資料から整理します。
Huffman 符号 (1952) — MIT の学期末レポートが生んだ最適圧縮アルゴリズム
1952 年、MIT の大学院生 David Huffman が学期末レポートとして提出した「最小冗長符号の構成法」は、JPEG・gzip・PNG・MP3・HTTP/2 の内部で今も動いています。Shannon-Fano 符号を超える最適性の証明、貪欲法による木の構築、そして DEFLATE (RFC 1951) や HPACK (RFC 7541) での実装を、原論文と RFC を一次資料に整理します。