Добавить к CipherOutputStream - AES / CTR / NoPadding (Java) - PullRequest
0 голосов
/ 10 января 2020

Таким образом, мое приложение загружает видео из inte rnet, но шифрует его на лету во время загрузки и записывает зашифрованные данные в хранилище. Я использую AES / CTR / NoPadding. Как добавить зашифрованные данные в уже зашифрованный файл? Это связано с тем, что загрузка может прекратиться или соединение может go разорваться, чтобы приложение могло возобновить загрузку. Я попробовал это, передав параметр добавления в ситуации возобновления, файл завершается (возобновляется), и я могу расшифровать файл обратно (без проблем), но файл поврежден, и когда я сравниваю его с зашифрованным файлом, который был загружен за один раз (без паузы и возобновления) это совершенно другое. Также файл, который загружается за один раз, полностью работает после дешифрования, его можно воспроизводить, и все биты не повреждены.

Я использую жестко закодированный 128-битный ключ и жестко запрограммированный 128-битный IV.

1 Ответ

0 голосов
/ 13 января 2020

Вы можете использовать ту же схему для установки смещения для расшифровки, которую я изложил в этом ответе . На самом деле, для режима CTR шифрование - это та же операция, что и дешифрование, поэтому очевидно, что обе операции работают одинаково. Конечно, вам придется заранее сохранить IV с зашифрованным текстом, чтобы это работало.

...