Перейти к навигации Перейти к поиску
Алгоритм SYSV контрольная сумма была широко используется, наследие контрольной суммы алгоритма. Он реализован в UNIX System V, а также доступен через служебную программу командной строки sum .
Этот алгоритм бесполезен с точки зрения безопасности и слабее CRC-32 cksum для обнаружения ошибок. [1] [2]
Описание алгоритма [ править ]
Основная часть этого алгоритма - это просто сложение всех байтов в 32-битную сумму. В результате этот алгоритм имеет характеристики простой суммы: [2]
- переупорядочивание тех же байтов в другом порядке (например, перемещение текста из одного места в другое) не изменяет контрольную сумму.
- увеличение одного байта и уменьшение другого байта на ту же величину не изменяет контрольную сумму.
- добавление или удаление нулевых байтов не меняет контрольную сумму.
В результате многие общие изменения текстовых данных не обнаруживаются этим методом.
Псевдокод FreeBSD для этого алгоритма:
S = сумма из всех байтов ; г = s % 2 ^ 16 + ( s % 2 ^ 32 ) / 2 ^ 16 ; cksum = ( г % 2 ^ 16 ) + г / 2 ^ 16 ;
Последняя часть складывает значение в 16 бит.
Ссылки [ править ]
Источники [ править ]
- официальная страница руководства по сумме GNU
- Страница загрузки coreutils --- найдите и распакуйте последнюю версию пакета coreutils, прочтите src / sum.c