Возможно ли иметь функцию объединения() для CRC64/NVME?C++

Программы на C++. Форум разработчиков
Anonymous
Возможно ли иметь функцию объединения() для CRC64/NVME?

Сообщение Anonymous »

AWS S3 использует CRC64/NVME в качестве алгоритма контрольной суммы по умолчанию.
Мне нужно отправить конечную контрольную сумму CRC64/NVME.
Примечательно то, что я являюсь промежуточным программным обеспечением. Существует несколько потоков, которые отправляют байты. Я знаю смещение/длину этих байтов, но у меня никогда не бывает полной картины всего файла одновременно.
Мне нужна функция CRC join(), которая позволит мне вычислить CRC64/NVME для объединенных данных, используя только CRC отдельных блоков и смещения/длины.
Так, например, они должны быть равны:

Код: Выделить всё

combine(crc64nvme("abc"), 3, crc64nvme("def"), 3) == crc64nvme("abcdef")
Я знаю, что это возможно для многих вариантов CRC, но я не нашел решения для CRC64/NVME. Я попробовал искусственный интеллект, но после примерно 50 итераций он пришел к выводу, что это невозможно.
Мой вопрос состоит из двух частей: возможно ли это вообще и существует ли для этого эталонная реализация?

Подробнее здесь: https://stackoverflow.com/questions/798 ... crc64-nvme

Вернуться в «C++»