Пиксели перемешиваются. По алгоритму обратимо. И это Постить можно на любых форумах. При востановлении тональность немного меняется. Про шифрование картинок и стеганографии известно давно, но онлайн реализаций этого нет. Исходный код открыт, онлайн реализация. https://codepen.io/procoders000001/full/qEOEgNe ( код работает локально без доступа к интернету )
Если сайт жмёт сильно разрешение есть риск что изображение не востановится.
Perfect shuffle - это не танцы ногами из тиктока, а перемешивание карт. Берешь колоду, делишь на две половины, и перемешиваешь так, чтобы чередовались карты из первой половины и из второй. Если первая карта идет из второй половины - это in-shuffle, если из второй - out-shuffle.
Не понятно. Хорошо. Вот на картиночках объяснение.
in-shuffle - первая карта из второй половины (5) идет вперед:
in-shuffle
out-shuffle - первая карта из первой половины (1) идет вперед
out-shuffle
Чередуя in-shuffle и out-shuffle мы запутываем колоду так, что распутать ее практически невозможно, не зная поочередности in/out.
Собственно поочередность in/out - это и будет наш ключ шифрования.
Дальше больше. Вместо перемешивания строки, мы можем перемешивать пиксели - то есть, столбики и строки на картинке. Делим картинку на 4 сегмента-квадратика и перемешиваем. Опять же чередуя in/out.
Допустим, ты Андрей Максимович, хочешь передать своему другу Дмитрию Геннадиевичу фотку своего котяры, но не хочешь, чтобы её увидел Петр Борисович.
Перемешиваешь картинку, отправляешь другу. Друг, используя ключ, восстанавливает оригинальную картинку. Борисыч даже брутфорсом ничего не сделает - количество комбинаций слишком внушительное.
В качестве примера, будем использовать фотку Конфуция:
Mode? Да! Для создания пущей энтропии. Помнишь, мы делили картинку на 4 квадратика-сегмента. Вот mode определяет трансформации, применяемые к этим сегментам перед перемешиванием. Например [1, 0, 0, 0] означает, что мы вращаем левый верхний квадратик на 90 градусов, остальные 3 квадратика не трогаем.
Если Борисыч даже 1 бит в ключе перепутает - вместо оригинала получит шум (в примере ниже перепутан последний бит в ключе):
Шифровать: 1. Загружаешь картинку туда, где кнопка "Shuffle →" (левая сторона). 2. Жмякай "Random Modes". 3. Автоматически сгенерируется случайный ключ 64 бита. 4. Этот ключ, сгенерированную картинку и Mode отправляешь Дмитрию.
Расшифровать: 2. Загружаешь зашифрованную картинку в правую половину, где кнопка "← Unshuffle". 3. Снимаешь галочку с "Generate new key" и вставляешь туда ключ. 4. Выставляешь Mode. 5. Жмякай "← Unshuffle".
Сделал по уроку фрактальный вихрь с помощью геометрических нод в Blender.
Господи, как же все лагало блин, там суть в том, что каждый кадр дублируются эти кубы и вращаются в разные стороны, а потом еще и закручиваются, в итоге там около миллиона (если не больше) кубов, из-за которых во вьюпорте творился сущий ад.
Но отрендерить получилось, а после сделал небольшую цветокоррекцию в DaVinci и наложил музыку. Выглядит приколдесно.