🍋
Menu
Security

Checksum

チェックサム(データ整合性検証)

特定のアルゴリズムを使用してデータブロックから計算される値で、保存中や送信中にデータが破損または改ざんされていないことを検証するためのフィンガープリントとして機能します。

技術的詳細

チェックサムは単純なもの(パリティビット、バイトの合計、CRC32)から暗号学的なもの(MD5SHA-256)まであります。CRC32(巡回冗長検査、32ビット)は高速で一般的な伝送エラーを検出しますが、衝突耐性はありません。MD5は128ビットハッシュを生成し、かつては標準でしたが現在は暗号学的に脆弱とされています。SHA-256は強力な整合性保証を提供します。実際には、ソフトウェアのダウンロードサイトがSHA-256チェックサムを提供し、ユーザーはローカルで計算した値と比較します。Web Crypto APIのsubtle.digest()がブラウザ内で暗号学的チェックサムを計算します。Adler-32(zlibで使用)はストリーミングデータの検証においてCRC32より高速です。

```javascript
// Checksum — 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('');
```

関連ツール

関連用語