Всем привет.
В данной статье будем прятать информацию в 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); }
Если у вас возникли вопросы, то пишите их в комментарии.