🛡️ نهاننگاری امن فایلها — هر فایلی را درون هر فایلی پنهان کن، با رمزنگاری AES-256.
Steganography + Security = StegaSuite
.Hide any file inside any carrier · AES-256-GCM encryption · 30+ formats · Bilingual UI
| Edition | Link | Notes |
|---|---|---|
| 🤖 Android (this repo) | Android Releases | StegaSuite-v{version}.apk — direct install, no root needed |
| 🪟 Windows (sister repo) | Windows Releases | StegaSuite-Install-*.zip (self-contained installer) or StegaSuite-Portable-*.exe (needs .NET 10 Desktop Runtime) |
Same wire format (
SGP2/SGF1/SGA1) — files hidden on Android extract on Windows and vice versa.
- Go to Android Releases and download the latest
StegaSuite-v{version}.apk. - On your phone, allow installs from unknown sources when asked (
Settings → Security → Install unknown apps). - Open the APK file and tap Install. No root needed.
- از صفحه Releases آخرین فایل
StegaSuite-v{version}.apkرا دانلود کنید. - روی گوشی اجازه «نصب از منابع ناشناس» (
Install unknown apps) را فعال کنید. - فایل APK را باز کنید و نصب را بزنید. بدون نیاز به روت.
نسخه اندروید مورد نیاز: اندروید ۸٫۰ (Oreo، سطح API 26) به بالا (minSdk = 26، targetSdk = 35).
StegaSuite is an open-source Android steganography application that hides arbitrary files inside carrier files (images, audio, video, documents, etc.) using LSB (Least Significant Bit) encoding. Unlike traditional encryption which only hides the content, Steganography hides the existence itself.
StegaSuite یک اپلیکیشن اندرویدی متنباز برای مخفیسازی فایلها درون فایلهای دیگر است. با استفاده از تکنیک LSB (کماهمیتترین بیت)، فایل مخفی شده در پیکسلهای تصویر، نمونههای صوتی یا بایتهای فایلهای عمومی قرار میگیرد. برخلاف رمزنگاری معمولی که فقط محتوا را رمز میکند، این ابزار وجود خود فایل مخفی شده را هم پنهان میکند.
| ویژگی | توضیح |
|---|---|
| 🔐 رمزنگاری AES-256-GCM | رمزنگاری نظامی با PBKDF2 (۶۰۰,۰۰۰ تکرار) |
| 🎨 ۳۰+ فرمت پشتیبانی | PNG, BMP, TIFF, WebP, WAV, MP3, MP4, PDF, ZIP و... |
| 🧠 تشخیص خودکار فرمت | شناسایی Magic Bytes بدون نیاز به انتخاب دستی |
| 🌍 رابط دوزبانه | فارسی (RTL) و انگلیسی (LTR) با قابلیت جابجایی آنی |
| 🌙 تم تاریک و روشن | طراحی مدرن با گرادیان بنفش |
| 📊 محاسبه ظرفیت | نمایش حداکثر حجم قابل مخفیسازی قبل از عملیات |
| ⚡ بدون نیاز به روت | نصب مستقیم از GitHub Releases |
| 🔓 استخراج با نام اصلی | فایل استخراج شده با نام و پسوند اصلی ذخیره میشود |
| 📁 سازگاری معکوس | پشتیبانی از فایلهای نسخههای قدیمیتر |
┌──────────────┐ ┌──────────────┐ ┌──────────────┐
│ Carrier File │ + │ Payload File │ + │ Password │
│ (image/audio │ │ (any format) │ │ (optional) │
│ /video/...) │ │ │ │ │
└──────┬───────┘ └──────┬───────┘ └──────┬───────┘
│ │ │
└────────────────────┼────────────────────┘
▼
┌────────────────┐
│ LSB Encoding │
│ + AES-256-GCM │
└────────┬───────┘
▼
┌────────────────┐
│ Output File │
│ (looks normal) │
└────────────────┘
- فایل حامل را انتخاب کنید (تصویر، صدا، ویدیو، سند و...)
- فایل مخفی شونده را انتخاب کنید (هر فرمتی)
- رمز عبور وارد کنید (اختیاری، اما پیشنهاد میشود)
- روی «مخفیسازی و ذخیره» کلیک کنید
- فایل خروجی با ظاهر عادی ذخیره میشود
- به حالت «استخراج» بروید
- فایل حامل را انتخاب کنید
- رمز عبور را وارد کنید (اگر تنظیم شده بود)
- فایل با نام و پسوند اصلی ذخیره میشود
| فرمت | پسوند | روش مخفیسازی | کیفیت |
|---|---|---|---|
| PNG | .png |
LSB پیکسلی | ✅ عالی |
| BMP | .bmp |
LSB پیکسلی | ✅ عالی |
| WAV | .wav |
LSB نمونه صوتی | ✅ عالی |
| TIFF | .tiff, .tif |
Generic LSB | |
| WebP | .webp |
Generic LSB | |
| MP3 | .mp3 |
Generic LSB | |
| FLAC | .flac |
Generic LSB | |
| MP4 | .mp4 |
Generic LSB | |
.pdf |
Generic LSB | ||
| ZIP | .zip |
Generic LSB | |
| TXT | .txt |
Generic LSB | ✅ عالی |
| + 20 فرمت دیگر | Generic LSB |
بدون محدودیت — هر فایلی با هر پسوندی قابل مخفیسازی است:
- 📄 اسناد: PDF, DOCX, XLSX, PPTX, TXT, CSV, JSON, XML, Markdown
- 🖼️ تصاویر: PNG, JPG, GIF, BMP, SVG, WebP, TIFF
- 🎵 صدا: MP3, WAV, FLAC, OGG, M4A, AAC
- 🎬 ویدیو: MP4, AVI, MKV, MOV, WebM
- 📦 آرشیو: ZIP, RAR, 7Z, TAR, GZ
- 💻 کد: JS, PY, TS, HTML, CSS, Java, Kotlin
اگر رمز عبور تنظیم شده باشد، فایل مخفی شده با AES-256-GCM رمز میشود:
| Parameter | Value |
|---|---|
| Algorithm | AES/GCM/NoPadding |
| Key Size | 256 bits |
| Key Derivation | PBKDF2WithHmacSHA256 |
| PBKDF2 Iterations | 600,000 |
| Salt | 16 bytes (SecureRandom) |
| Nonce (IV) | 12 bytes (SecureRandom) |
| GCM Tag | 128 bits |
| AAD | STGS (4 bytes magic) |
┌─────────────────────────────────────────────────┐
│ Magic Bytes: SGP2 / SGF1 / SGA1 (4 bytes) │
│ Payload Length (8 bytes) │
│ ┌───────────────────────────────────────────┐ │
│ │ Encrypted/CRC'd Payload │ │
│ │ ┌─────────────────────────────────────┐ │ │
│ │ │ Filename Length (4 bytes) │ │ │
│ │ │ Filename (UTF-8) (≤1024 bytes) │ │ │
│ │ │ File Content (N bytes) │ │ │
│ │ └─────────────────────────────────────┘ │ │
│ └───────────────────────────────────────────┘ │
└─────────────────────────────────────────────────┘
| نوع حامل | فرمول | مثال |
|---|---|---|
| PNG/BMP | (عرض × ارتفاع × 3) ÷ 8 |
تصویر ۱۹۲۰×۱۰۸۰ ≈ ۷۷۷ KB |
| WAV | (نمونهها × کانالها) ÷ 8 |
صدای ۱۰ ثانیه ۴۴.۱kHz ≈ ۲۵۹ KB |
| عمومی | (اندازه فایل - بایت امن) ÷ 8 |
فایل ۱ MB ≈ ۱۲۲ KB |
| محدودیت | توضیح |
|---|---|
| حداکثر اندازه فایل مخفی | ۵۰ مگابایت |
| طول نام فایل | حداکثر ۱۰۲۴ بایت (≈ ۳۴۰ حرف فارسی) |
| فرمتهای Lossy | JPEG و WebP ممکن است داده را خراب کنند |
| ویرایش فایل حامل | هرگونه تغییر (crop, resize, filter) داده را از بین میبرد |
| فشردهسازی مجدد | ارسال از طریق تلگرام/ایمیل ممکن است فایل را فشرده کند |
- ✅ از PNG یا BMP به عنوان فایل حامل استفاده کنید
- ✅ رمز عبور قوی با ترکیب حروف، اعداد و نمادها انتخاب کنید
- ✅ فایل حامل را تغییر ندهید (crop, rename, filter نکنید)
- ✅ از فایلهای بزرگتر برای ظرفیت بیشتر استفاده کنید
- ❌ از JPEG به عنوان فایل حامل استفاده نکنید
Prerequisites / پیشنیازها:
- Android Studio (with Android SDK: platform
android-35+build-tools;35.0.0) - JDK 17
- Gradle 8.9+ (or the project's wrapper, if present)
./gradlew assembleDebug
# اگر فایل `gradlew` در checkout شما نیست: gradle assembleDebugOutput APK / خروجی:
app/build/outputs/apk/debug/app-debug.apk
- پوشه پروژه را در Android Studio باز کنید.
- صبر کنید Gradle Sync تمام شود.
- کانفیگ
appرا انتخاب کنید. - گوشی با USB debugging فعال یا یک Emulator وصل کنید.
- Run را بزنید — یا برای ساخت APK از ترمینال دستور بالا را اجرا کنید.
این پروژه شامل فایل .github/workflows/build-apk.yml است. هر بار push، یک APK Debug به صورت خودکار ساخته و آپلود میشود.
Available Actions:
| Workflow | Trigger | Description |
|---|---|---|
build-apk.yml |
Push to any branch | Builds Debug APK, creates Release |
Build outputs:
- Artifacts:
StegaSuite-v{version}.apk - Releases: Auto-created with version tag
StegaSuite/
├── app/src/main/java/com/stegasuite/app/
│ ├── MainActivity.kt # UI layer (Jetpack Compose)
│ ├── PngSteganography.kt # Unified steganography engine
│ ├── FileSteganography.kt # Generic binary LSB engine
│ ├── AudioSteganography.kt # WAV audio LSB engine
│ └── StegaCrypto.kt # AES-256-GCM encryption
├── app/build.gradle.kts # Build config with auto-versioning
├── docs/
│ └── tutorial.html # Comprehensive tutorial page
└── .github/workflows/
└── build-apk.yml # CI/CD pipeline
| اندازه فایل حامل | ظفیت مخفیسازی | مثال |
|---|---|---|
| تصویر ۱ مگاپیکسل | ≈ ۳۶۶ KB | مخفیسازی یک سند PDF |
| تصویر ۱۲ مگاپیکسل | ≈ ۴.۳ MB | مخفیسازی چند عکس |
| صدای ۱ دقیقه WAV | ≈ ۱.۵ MB | مخفیسازی یک فایل متنی |
| فایل ۱ مگابایتی | ≈ ۱۲۲ KB | مخفیسازی یک فایل متنی |
| فایل ۱۰ مگابایتی | ≈ ۱.۲ MB | مخفیسازی چند تصویر |
Issues and Pull Requests are welcome. Please see GITHUB_GUIDE_FA.md (Persian) and UPLOAD_GUIDE.md.
برای گزارش مشکل یا پیشنهاد قابلیت جدید، لطفا ایشو یا پولریکوئست ثبت کنید. راهنما: GITHUB_GUIDE_FA.md.
MIT — see LICENSE.
- Telegram: https://t.me/a_c_official
- Website: https://alvandcode.github.io
- GitHub: https://github.com/Alvandcode/StegaSuite
Made with ❤️ by Alvandcode