JavaScript, Node js 24.09.2018 admin No comments

Стеганография на Node js. Прячем информацию в изображении.

Всем привет.

В данной статье будем прятать информацию в 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);
}

Если у вас возникли вопросы, то пишите их в комментарии.


1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (2 оценок, среднее: 5,00 из 5)
Загрузка...