>>Приветствую вас, онлайн-духи Ж)! Есть задача запихать модуль вычисления контрольной суммы в >>некую, не особо шуструю, железяку. Сия железяка должна вычислять эту самую >>контрольную сумму "на лету" при копировании и записи (на нее/с нее), >>причем максимально быстро... Так как с этими алгоритмами вычисления контрольных сумм >>я никогда дело не имел и слабо представляю сколько их всего >>существует, прошу помощи у вас. Подскажите, где бы мне почитать статейку >>грамотную да кодов для тестирования скорости набрать? >>Заранее благодарю вас, уважаемые линуксойды. >>P.S. особо интересуют MD5 HASH MD4 > >Основной вопрос: для чего расчитывать контрольную сумму? >- проверка целостности коротких блоков данных (сетевых пакетов): CRC16, CRC32, in_cksum; >- проверка целостности больших файлов: функции хеширования md5, sha1 и т.д. и >т.п. > >Защита от подмена данных - хеши, защита от ошибок при передачи данных >- контрольные суммы. вообще онтрольная сумма нужна для провеки подленности скопированного файла. Должно это происходить следующим образом - юзер копирует файл на некий носитель, файл может быть любого размера. В процессе копирования необходимо просчитывать контрольную сумму файла, причем максимально быстро, чтоб не тормозить процесс копирования слишком сильно. Я расчитываю реализовать просчет алгоритмом MD2. Но тут всплыла еще одна проблемка - дело в том, что для просчета контрольной суммы требуется весь файл целиком, а в данном случае я могу просчиьывать "на лету" только фрагмент копируемого файла (так как заранее не известно размер файла да и достаточный буфер выделить не смогу если большой файл будет). Получается что если я буду брать размер фрагмента в 1Кб, а копироваться будет файл на 10Кб, у меня будет 10 различных контрольных сумм, а мне нужна 1 сумма на весь файл. Как бы мне реализовать быстрый поточный подсчет? Может есть еще какие алгоритмы более подходящие для решения этой задачи, чем MD2?
|