Калькулятор контрольной суммы Adler-32
Вычисление контрольных сумм Adler-32 для текста и файлов, быстрая контрольная сумма для сжатия zlib/gzip
Введите обычный текст (кодировка UTF-8)
Результат Adler-32
Об Adler-32
Adler-32 — это алгоритм контрольной суммы, изобретённый Марком Адлером в 1995 году. Он используется в библиотеке сжатия zlib и является частью широко используемого формата файлов gzip. Adler-32 был разработан для работы быстрее, чем CRC-32, сохраняя при этом разумные возможности обнаружения ошибок.
Алгоритм создаёт 32-битную контрольную сумму (4 байта) и особенно эффективен на коротких входных данных. Назван в честь создателя, который также является соавтором программ сжатия gzip и zlib.
Алгоритм
Adler-32 работает, поддерживая две накопительные суммы по модулю 65521 (наибольшее простое число меньше 2^16). Контрольная сумма вычисляется следующим образом:
A = 1 + D1 + D2 + ... + Dn (mod 65521) B = (1 + D1) + (1 + D1 + D2) + ... + (1 + D1 + ... + Dn) (mod 65521) Adler-32 = (B << 16) | A
Характеристики
- Вывод: 32 бита (4 байта, 8 шестнадцатеричных символов)
- Скорость: Быстрее CRC-32, особенно в программных реализациях
- Модуль: Использует простое число 65521 для лучшего распределения
- Начальное значение: A=1, B=0 (пустая строка даёт контрольную сумму 1)
Типичные случаи использования
- Библиотека zlib — контрольная сумма сжатия данных
- Формат файлов gzip — проверка целостности
- Формат изображений PNG — целостность чанков
- Быстрая проверка данных, когда скорость важнее устойчивости к коллизиям
Примеры
Input: "Hello, World!"
Adler-32: 1f9e046a (Hex) / 530858090 (Decimal)
Input: "" (empty string)
Adler-32: 00000001 (Hex) / 1 (Decimal)
Adler-32 vs CRC-32
| Характеристика | Adler-32 | CRC-32 |
|---|---|---|
| Скорость | Быстрее | Медленнее |
| Обнаружение ошибок | Хорошо | Лучше |
| Типичное использование | zlib, PNG, gzip | Ethernet, ZIP, PNG |