Всем привет.
В данной статье будем прятать информацию в png изображении, используя для этого Node.js и библиотеку steggy.
Для начала необходимо установить библиотеку steggy. Для этого можно использовать npm:
npm install steggy --save
Для шифрования информации используйте следующий код:
const steggy = require('steggy');
const fs = require('fs');
// сообщение для сокрытия
const hideMessage = "Blog - progtask.ru";
// получаем изображение, в которое будем прятать сообщение
const inputImage = fs.readFileSync('./img/input.png');
// пароль, который нужен для большей надёжности. Его использовать необязательно
const password = "testpassword";
// путь к новому изображению, в котором будет храниться скрытая информация
const outputImagePath = './img/output.png';
// функция сокрытия сообщения в картинке.
// Если вы не хотите использовать пароль, просто не передавайте его
const concealed = steggy.conceal(password)(inputImage, hideMessage);
// запись данных в новое изображение
fs.writeFileSync(outputImagePath, concealed);
Изображения для сравнения:
Исходное изображение:

Полученное изображение:

Разница между изображениями незаметна.
Для извлечения информации используйте следующий код:
const steggy = require('steggy');
const fs = require('fs');
// получение изображения, в котором хранится информация
const outputImage = fs.readFileSync('./img/output.png');
// указываем пароль, если он необходим
const password = "testpassword";
try {
// получение сообщения
const revealed = steggy.reveal(password)(outputImage);
// вывод полученной информации в консоль
console.log(revealed.toString());
}
catch(ex) {
// выводим сообщение об ошибке, если что-то пошло не так
// e.g. не подошёл пароль, нет информации и т.п.
console.log(ex.message);
}
Если у вас возникли вопросы, то пишите их в комментарии.
