UIImage к сжатым и зашифрованным данным
Я пытаюсь создать и отправить зашифрованное изображение через приложение iMessage. Я никогда не делал ничего подобного раньше, и я даже не уверен, с чего начать.
Я знаю, что есть такие репозитории GitHub, которые предоставляют множество различных методов шифрования. Я также знаю, что Apple предоставляет библиотеки сжатия на iOS. Что я не знаю, так это то, какие алгоритмы и параметры сжатия использовать.
Мне нужно, чтобы он был как можно меньше, но при этом сохранял достаточно высокое качество изображения (например, качество Instagram или выше).
Короткая версия: Каков наилучший способ сжатия и шифрования UIImage на iOS?
1 ответ
Используйте ZIP для сжатия и AES для шифрования. Сначала архивируется ZIP, а затем шифруется AES в Common Crypto. На SO много ответов о шифровании с помощью Common Crypto в iOS.
Но как получатель расшифрует изображение и как ключ шифрования будет использоваться отправителем и получателем?
Шифрование AES увеличивает размер не более чем на 16 байтов заполнения.
На iPhone 5S я получаю скорость шифрования 440 МБ / с. Common Crypto использует встроенное аппаратное обеспечение для шифрования, программные реализации, такие как CryptoSwift, намного (на порядки) медленнее.