@plx49638

Как убедиться что сжатые изображения является продуктами исходного?

Хочу производить изменения размеров изображения на стороне клиента в момент загрузки изображения на сервер . Но у меня возник вопрос. Если клиенту нет доверия то как как убедиться на стороне сервера что сжатые изображения действительно являются продуктом исходной картинки? Ведь клиент может совершить подмену и отправить в качестве сжатых изображений совершено другие картинки.

И еще вопрос какие механизмы сжатия вы посоветуете? Сейчас рассматриваю вариант через канвас. Но может есть какие то более правильные решения ?

Делаю загрузку картинок на север. с оптимизацией размера под те места сайта где ненужны исходные размеры (например в привью)
  • Вопрос задан
  • 229 просмотров
Решения вопроса 1
mayton2019
@mayton2019
Bigdata Engineer
Ну... сжатая картинка сохраняет стационоарными некоторые свойства. Например палитра. Цветовые кривые.
Если не сильно сжимать то и некоторые частотыне свойства сохраняются. Вот. Персептуальный хеш.
Это такое 8х8 черно белая матрица. Тоже идентичная для оригинала и для скейлинга. На habr.com была
хорошая статья про эти виды хешей.

Но честно я-бы такое вообще не делал. Больше
холивара чем практической пользы.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
@maksam07
Никак. Любые данные о картинках можно подменить. Как удалить, так и указать авторство Сальвадора Дали в мета данных.
Ответ написан
@rPman
Исключительно ради стеба.

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

В результате тот кто исполнял код не будет понимать что за данные были и что получилось и, само собой, не сможет грамотно подменить (цифровая подпись результата станет не валидной если просто повредить данные).

Пример использования - криптовалюта zcash, в ней для анонимных монет использовано было именно это шифрование.

На хабре недавно была статья о компиляторе C (сильно упрощенный) который позволяет писать такой код относительно свободно. Библиотек под разные языки полно, правда они не так красивы как прямо целый компилятор.

Гомоморфное шифрование очень серьезно тратит вычислительные ресурсы и память, не уверен, экспоненциальная ли от сложности алгоритма или просто константа большая, но к примеру сложение двух чисел в статье выполнялось 7 секунд

Т.е. задачу автора вопроса можно было бы решить с помощью этой технологии но это на столько абсурдно бессмысленно, что даже начинать не рекомендуется. Будет очень медленно работать.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы