Как организовать шифрование аудио и видео в приложении для мобильного устройства?
Доброго времени суток!
В мобильном приложении нужно организовать механизмы шифрования загруженных аудио и видео файлов, с дальнейшим хранением на устройстве. Вопросы следующие:
1. Стоит ли шифровать файл после загрузки на мобильном устройстве, либо хранить уже зашифрованные на сервере, но тогда нужно будет еще писать скрипт расшифровки для браузеров, поскольку данное приложение является оболочкой для обычного веб приложения?
2. Как собственно произвести кодирование? Посоветуйте, на свой взгляд, лучшие практики, файл в дальнейшем будет раскодироваться и сразу же воспроизводиться
VSrider, если файлы скачиваются в ваше мобильное приложение с вашего сервера и вы не хотите чтобы вне приложения к ним кто-то получил доступ, то да, шифровать.
лучше это сделать сразу на сервере, чтобы не тратить ресурсы мобильного клиента (и батарейку смартфона).
и отдавать на клиента сразу зашифрованное.
если контент реально дико ценный, то шифровать индивидуально под каждого клиента отдельным ключом.
если это защита "лишь бы была", чтобы нельзя было просто так с ходу расковырять ваш контент, то из соображений экономии на производительности сервера - это можно делать единожды и использовать общий ключ для дешифровки на всех клиентах одинаковый.
если защита максимально экономящая батарейку и лишь бы лишь бы была - то можно даже простейший XOR. но в общем случае изобретать свои алгоритмы настоятельно не рекомендую - используйте проверенные решения. эти решения, кстати, очень оптимизированы по производительности и по надежности. готовые библиотеки шифрования есть под все программные платформы.
awesomer, чтож хорошо тогда буду пробовать, для меня важным критерием было наличие минимальных задержек при расшифровке и дальнейшем воспроизведении, чтобы пользователь этого не ощущал
есть большой выбор алгоритмов шифрования - можно шифровать не самым надежным, но самым быстрым алгоритмом.
в современных системах шифрация/расшифровка довольно хорошо оптимизированы. может быть устроит.
можно делить видео на небольшие фрагменты. расшифровывать фрагмент. пускать на воспроизведение. на фоне расшифровывать следующий, чтобы он уже был готов когда закончится предыдущий фрагмент.