Есть ли способ использовать алгоритм потокового шифрования для шифрования видео, сохраняя при этом возможность воспроизвPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Есть ли способ использовать алгоритм потокового шифрования для шифрования видео, сохраняя при этом возможность воспроизв

Сообщение Anonymous »

У меня есть проект, который требует использования потокового шифра (например, ChaCha20) для шифрования видео, и я хочу передать зашифрованное видео с помощью ffmpeg, чтобы получатель мог его расшифровать и просмотреть, но я понял это, когда процесс шифрования завершен, файл больше не поддерживает воспроизведение, поэтому ffmpeg ничего не может с ним поделать.
Это код Python, который я использовал раньше:

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

from cryptography.hazmat.primitives.ciphers import Cipher, algorithms, modes
from cryptography.hazmat.backends import default_backend
import os

def encrypt_video(input_file, output_file, key, nonce):
algorithm = algorithms.ChaCha20(key, nonce)
cipher = Cipher(algorithm, mode=None, backend=default_backend())
encryptor = cipher.encryptor()

with open(input_file, 'rb') as f_in, open(output_file, 'wb') as f_out:
while chunk := f_in.read():  # Đọc và mã hóa từng khối 64KB
encrypted_chunk = encryptor.update(chunk)
f_out.write(encrypted_chunk)
f_out.write(encryptor.finalize())

def decrypt_video(input_file, output_file, key, nonce):
algorithm = algorithms.ChaCha20(key, nonce)
cipher = Cipher(algorithm, mode=None, backend=default_backend())
decryptor = cipher.decryptor()

with open(input_file, 'rb') as f_in, open(output_file, 'wb') as f_out:
while chunk := f_in.read():
decrypted_chunk = decryptor.update(chunk)
f_out.write(decrypted_chunk)
f_out.write(decryptor.finalize())

key = os.urandom(32)
nonce = os.urandom(16)

encrypt_video('input.mp4', 'encrypted_video.mp4', key, nonce)

decrypt_video('encrypted_video.mp4', 'decrypted_video.mp4', key, nonce)
Decrypted_video.mp4 не воспроизводится VLC и не передается в потоковом режиме с помощью ffmpeg. Любые предложения будут оценены :(

Подробнее здесь: https://stackoverflow.com/questions/785 ... hile-still
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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