Compare commits
2 Commits
2f2117e240
...
867caff650
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
867caff650 | ||
|
|
ce89043fb8 |
114
README.md
114
README.md
@@ -1,20 +1,118 @@
|
|||||||
# CourseWork
|
|
||||||
|
|
||||||
# Stego App
|
# Stego App
|
||||||
|
|
||||||
Стеганографическое приложение для сокрытия данных в изображениях.
|
**Стеганографическое приложение для сокрытия данных в изображениях**
|
||||||
|
|
||||||
## Функциональность
|
## Функциональность
|
||||||
|
|
||||||
- **LSB метод** (Least Significant Bit) - сокрытие в младших битах пикселей
|
| Метод | Описание |
|
||||||
- **DCT метод** (Discrete Cosine Transform) - сокрытие в частотной области
|
|-------|------------------------------------------------------------------------------------------------|
|
||||||
|
|**LSB**|(Least Significant Bit) | Сокрытие в младших битах пикселей. Работает с любыми изображениями |
|
||||||
|
|**DCT**|(Discrete Cosine Transform) | Сокрытие в частотной области. Для гладких/однотонных изображений |
|
||||||
|
|
||||||
|
### Возможности
|
||||||
|
|
||||||
- Графический интерфейс (Tkinter)
|
- Графический интерфейс (Tkinter)
|
||||||
- CLI интерфейс
|
- CLI интерфейс
|
||||||
|
- Поддержка русских и английских текстов
|
||||||
|
- Сохранение результатов на устройство
|
||||||
|
- Расчёт вместимости изображения
|
||||||
|
- Сравнение изображений (PSNR)
|
||||||
|
|
||||||
|
---
|
||||||
|
### Получение кода
|
||||||
|
|
||||||
|
## Способ 1: Клонирование репозитория (если есть доступ)
|
||||||
|
|
||||||
|
git clone <ссылка_на_репозиторий>
|
||||||
|
cd CourseWork
|
||||||
|
|
||||||
|
# Что такое git clone?
|
||||||
|
Это команда, которая скачивает копию репозитория с сервера (например, с Gitea, GitHub) на ваш компьютер.
|
||||||
|
|
||||||
|
# Где взять ссылку?
|
||||||
|
В веб-интерфейсе репозитория нажмите кнопку Clone или Клонировать и скопируйте ссылку (HTTPS или SSH).
|
||||||
|
|
||||||
|
## Способ 2: Скачать архив с Gitea/GitHub
|
||||||
|
1. Перейдите на страницу репозитория
|
||||||
|
2. Нажмите кнопку Download ZIP или Скачать архив
|
||||||
|
3. Распакуйте архив
|
||||||
|
4. Откройте терминал в распакованной папке
|
||||||
|
|
||||||
## Установка
|
## Установка
|
||||||
|
|
||||||
### Автоматическая установка
|
### Автоматическая установка (рекомендуется)
|
||||||
|
|
||||||
```bash
|
|
||||||
chmod +x install.sh
|
chmod +x install.sh
|
||||||
./install.sh
|
./install.sh
|
||||||
|
|
||||||
|
### Установка через pipx
|
||||||
|
pipx install .
|
||||||
|
|
||||||
|
### Ручная установка зависимостей
|
||||||
|
pip install numpy pillow scipy
|
||||||
|
|
||||||
|
### Установка Tkinter (Ubuntu/Debian)
|
||||||
|
sudo apt install python3-tk
|
||||||
|
|
||||||
|
### Запуск
|
||||||
|
|**Команда** |**Описание**|
|
||||||
|
|stego-gui |Графический интерфейс|
|
||||||
|
|stego --help| Помощь по CLI|
|
||||||
|
|
||||||
|
### CLI команды
|
||||||
|
#LSB кодирование
|
||||||
|
stego encode lsb image.png out.png -m "Секретное сообщение"
|
||||||
|
|
||||||
|
#LSB декодирование
|
||||||
|
stego decode lsb out.png
|
||||||
|
|
||||||
|
#DCT кодирование
|
||||||
|
stego encode dct image.png out.png -m "Секретное сообщение"
|
||||||
|
|
||||||
|
#DCT декодирование
|
||||||
|
stego decode dct out.png
|
||||||
|
|
||||||
|
#Показать вместимость изображения
|
||||||
|
stego capacity image.png
|
||||||
|
|
||||||
|
#Сравнить два изображения (PSNR)
|
||||||
|
stego psnr original.png modified.png
|
||||||
|
|
||||||
|
### Удаление
|
||||||
|
#Через pipx
|
||||||
|
pipx uninstall stego-app
|
||||||
|
|
||||||
|
#Через скрипт
|
||||||
|
chmod +x uninstall.sh
|
||||||
|
./uninstall.sh
|
||||||
|
|
||||||
|
### Требования к системе
|
||||||
|
ОС: Linux (Ubuntu/Debian и производные)
|
||||||
|
|
||||||
|
Python: 3.8 или выше
|
||||||
|
|
||||||
|
Зависимости: numpy, pillow, scipy, tkinter
|
||||||
|
|
||||||
|
Структура проекта
|
||||||
|
text
|
||||||
|
CourseWork/
|
||||||
|
├── core/ # LSB, DCT, Utils
|
||||||
|
├── gui/ # Графический интерфейс
|
||||||
|
├── icons/ # Иконки приложения
|
||||||
|
├── main.py # Точка входа (CLI + GUI)
|
||||||
|
├── setup.py # Установщик пакета
|
||||||
|
├── install.sh # Скрипт автоматической установки
|
||||||
|
├── uninstall.sh # Скрипт удаления
|
||||||
|
├── stego.desktop # Ярлык для меню приложений
|
||||||
|
├── requirements.txt # Зависимости проекта
|
||||||
|
└── README.md # Документация
|
||||||
|
|
||||||
|
### Известные ограничения
|
||||||
|
DCT метод требует размеры изображения, кратные 8 (например, 400×400, 512×512, 800×800)
|
||||||
|
|
||||||
|
DCT метод рекомендуется только для гладких/однотонных изображений
|
||||||
|
|
||||||
|
Результат кодирования рекомендуется сохранять в формате PNG (без потерь)
|
||||||
|
|
||||||
|
### Лицензия
|
||||||
|
MIT License
|
||||||
|
---
|
||||||
BIN
icons/stego.png
BIN
icons/stego.png
Binary file not shown.
|
Before Width: | Height: | Size: 2.4 KiB After Width: | Height: | Size: 2.3 KiB |
@@ -1,3 +1,4 @@
|
|||||||
|
""" Установка приложения """
|
||||||
cat > install.sh << 'EOF'
|
cat > install.sh << 'EOF'
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
# Установка Stego App для Ubuntu/Debian
|
# Установка Stego App для Ubuntu/Debian
|
||||||
|
|||||||
2
main.py
2
main.py
@@ -1,6 +1,6 @@
|
|||||||
#!/usr/bin/env python3
|
#!/usr/bin/env python3
|
||||||
"""
|
"""
|
||||||
CLI интерфейс для стеганографических методов LSB и DCT.
|
CLI интерфейс для методов LSB и DCT.
|
||||||
|
|
||||||
Использование:
|
Использование:
|
||||||
python main.py encode <method> <image> <output> [-m MESSAGE] [-f FILE]
|
python main.py encode <method> <image> <output> [-m MESSAGE] [-f FILE]
|
||||||
|
|||||||
1
setup.py
1
setup.py
@@ -1,3 +1,4 @@
|
|||||||
|
""" Основа установки и работы приложения """
|
||||||
#!/usr/bin/env python3
|
#!/usr/bin/env python3
|
||||||
from setuptools import setup, find_packages
|
from setuptools import setup, find_packages
|
||||||
|
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
|
""" Удаление приложения """
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
# Удаление Stego App
|
# Удаление Stego App
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user