![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
CRC по модулю 256
avgshron © (2010-06-10 14:48:00)Добрый день!
Имеется буфер из N байт. Требуется посчитать контрольную сумму по модулю 256. Помогите с алгоритмом, пожалуйста!
Германн (2010-06-12 01:35:00) [1]
> DVM © (11.06.10 23:31) [6]
>
>
Скорее всего имеется в виду именно Checksum. Это довольно часто используемый алгоритм.
DVM (2010-06-11 23:39:00) [2]
> avgshron ©
вот тут лежит мой модуль для вычисления разных вариантов CRC, правда CRC256 там нет (я не вижу в нем вообще необходимости, т.к. CRC64 за глаза хватает). http://dvmuratov.narod.ru/Crc.pas
По аналогии можно сделать и для 265.
DVM (2010-06-11 23:35:00) [3]кроме того, вариантов CRC8 как и CRC16 и прочих - как собак разных. Например, CRC8-SMBUS, CRC8-DALLAS-MAXIM и т.д. разные полиномы, инвертирование входных данных, и т.д.
Для CRC256 тоже не один возможный вариант.
DVM (2010-06-11 23:31:00) [4]
> Омлет © (10.06.10 14:57) [2]
CRC и Checksum - разные вещи.
MBo (2010-06-10 16:36:00) [5]>avgshron
Стоит уточнить, что именно требуется, а то в ветке уже три понятия рассматривается.
в [3] уже всплывает crc-256 - это не по модулю 256, а CRC с использованием 256-битного полинома.
RWolf (2010-06-10 15:51:00) [6]контрольная сумма по модулю 256 — это именно то, что написал Омлет © (10.06.10 14:57) [2].
avgshron (2010-06-10 15:42:00) [7]
> смотреть реализации CRC8
Вы хотите сказать, что она аналогична crc-256? Был ли тогда смысл изобретать еще и его?
MBo (2010-06-10 14:57:00) [8]http://ru.wikipedia.org/wiki/%D0%A6%D0%B8%D0%BA%D0%BB%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B8%D0%B9_%D0%B8%D0%B7%D0%B1%D1%8B%D1%82%D0%BE%D1%87%D0%BD%D1%8B%D0%B9_%D0%BA%D0%BE%D0%B4
смотреть реализации CRC8
Омлет (2010-06-10 14:57:00) [9]
function CalcChkSum(Data: pointer; Size: longint): byte;
var
i : integer;
p : ^byte;
begin
p := Data;
Result := 0;
for i := 1 to Size do
begin
inc(Result, p^);
inc(p);
end;
end;