🍋
Menu
Security

Checksum

Контрольная сумма (проверка целостности данных)

Значение, вычисленное из блока данных с помощью определённого алгоритма. Служит «отпечатком» для проверки того, что данные не были повреждены или изменены при хранении или передаче.

Техническая деталь

Контрольные суммы варьируются от простых (биты чётности, сумма байтов, CRC32) до криптографических (MD5, SHA-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('');
```

Связанные инструменты

Связанные термины