Как пользоваться
- Введите или вставьте данные. Текст читается как UTF-8, поэтому кириллица и другие не-ASCII символы занимают по несколько байт.
- Для проверки сырых данных выберите «Hex-байты», например
78 9cили0x01,0x02: пробелы, запятые и 0x игнорируются. - Скопируйте значение в hex. Десятичное число рядом — та же сумма.
Как это работает
- Adler-32: A = 1 + сумма байтов, B = сумма последовательных значений A, обе по модулю 65521; результат B·65536 + A.
- Fletcher-16: sum1 = сумма байтов, sum2 = сумма последовательных sum1, обе по модулю 255; результат sum2·256 + sum1.
- Fletcher-32: то же для 16-битных слов little-endian по модулю 65535; результат sum2·65536 + sum1.
Пример
Слово Wikipedia (9 байт):
- Adler-32: байты в сумме дают 919, значит A = 1 + 919 = 920 = 0x0398; B = 4582 = 0x11E6. Результат
11E60398, в десятичном виде 300286872. - Fletcher-16:
EE9A. - Fletcher-32:
B7DDA1F8.
Тестовая строка abcde даёт Fletcher-16 C8F0 и Fletcher-32 F04FC729.
Советы
- Сверка в Python:
zlib.adler32(b"Wikipedia")возвращает 300286872. - Adler-32 пустого входа —
00000001, потому что A начинается с 1. - На коротких сообщениях Adler-32 слаб: A и B не успевают пройти модуль, и многие комбинации битов не используются. CRC-32 обнаруживает ошибки лучше.