Я пытаюсь реализовать собственный алгоритм шифрования / дешифрования для воспроизведения зашифрованного видео в Qt. Было бы довольно легко расшифровать весь файл и затем передать его в QMediaPlayer, но я пытаюсь избежать этого, потому что размер этих видеофайлов составляет несколько гигабайт.
Чтобы все было просто, я сделал очень тупую диаграмму того, чего я пытаюсь достичь. Показанный пример не является действительным алгоритмом шифрования / дешифрования.
Зашифрованный видеофайл разбивается на 32-байтовые фрагменты, которые нумеруются с помощью n. Тогда каждый кусок XOR'd с хэшем SHA256 n. Затем результат должен быть передан в QMediaPlayer.
Я провел некоторое исследование, но я относительно новичок в Qt. Вот ссылка на решение для аналогичной проблемы:
Как я могу использовать Qt для шифрования / дешифрования / воспроизведения видео?
Это решение создает буфер для дешифрования видео на лету, но работает только путем вычисления его побайтово-байтово.
Edit:
Решение в ссылке использует 1-байтовый буфер.
Я хотел бы обработать 32-байтовые чанки, при этом имея возможность отследить, какой чанк я занят обработкой.
Предположим, я бы хотел транслировать видео размером 20 КБ. Это означало бы, что он разделен на 640 фрагментов, которые должны обрабатываться индивидуально, и при этом иметь возможность отслеживать, какой фрагмент я в данный момент дешифрую.
Как бы я мог создать буфер длиной 32 байта, который мог бы отслеживать, какую часть файла я обрабатываю?