Можно скрыть необработанные данные в изображениях разными способами. Например, выполняя побитовые операции с младшим битом каждого байта пикселя, чтобы этот байт представлял символ в коде ascii. Это не повлияет на внешний вид картинки, по крайней мере, на человеческий глаз.
В зависимости от размера самого изображения, вы можете скрыть больше или меньше данных. Обычно люди, которые занимаются стеганографией, прячут короткое сообщение, а не файл.
Чтобы получить скрытое сообщение, необходимо отменить процесс. Следовательно, вам нужно открыть изображение, содержащее скрытое сообщение, в виде файлового объекта в двоичном режиме, прочитать каждый из его пиксельных байтов и, наконец, посмотреть, как соответствует ascii char каждому байту.
Если вы действительно хотите скрыть файлы, вы можете рассмотреть возможность использования набора картинок вместо одного.
Я не знаю, как это сделать в JavaScript, но в Python это один из способов it