🍋
Menu
Security

SHA-256

SHA-256(Secure Hash Algorithm 256ビット)

任意の入力から固定長256ビット(32バイト)のダイジェストを生成する暗号学的ハッシュ関数で、データの完全性検証、デジタル署名、ブロックチェーン、パスワード保存に広く使用されています。

技術的詳細

SHA-256はNSAが設計したSHA-2ファミリーの一部で、512ビットブロック単位の入力を64ラウンドのビット演算、モジュラー加算、圧縮関数を通じて処理します。出力は64文字の16進数文字列(256ビット)です。SHA-256に対する実用的な衝突は発見されていません(SHA-1やMD5とは異なります)。用途にはGitのコミットハッシュ、ビットコインのマイニング(二重SHA-256)、TLS証明書のフィンガープリント、ファイルの整合性チェック(チェックサム)が含まれます。Web Crypto APIのsubtle.digest('SHA-256', data)がブラウザのネイティブサポートを提供します。パスワードハッシュ化には、意図的な計算コストを持つ専用関数(bcryptArgon2)がSHA-256単体より推奨されます。

```javascript
// SHA-256 — Web Crypto API example
const data = new TextEncoder().encode('sensitive data');
const hash = await crypto.subtle.digest('SHA-256', data);
const hex = Array.from(new Uint8Array(hash))
  .map(b => b.toString(16).padStart(2, '0')).join('');
```

関連ツール

関連用語