Skip to content

Repository files navigation

πŸ” Encryptor - مُشفر

Platform .NET License Release

A modern, cross-platform file encryption application built with .NET MAUI. Encrypt and decrypt your files securely with AES-256 encryption on Android and Windows.

Encryptor Logo

✨ Features

πŸ”’ Security

  • AES-256-CBC Encryption: Military-grade encryption using 256-bit keys
  • PBKDF2 Key Derivation: Secure key derivation with 100,000 iterations (OWASP recommended)
  • Salt & IV Generation: Random salt and initialization vector for each file
  • Memory Protection: Automatic memory cleanup of decrypted data

πŸ“ File Management

  • Multi-file Support: Encrypt/decrypt multiple files at once
  • Folder Encryption: Recursively encrypt entire folders
  • Smart Processing: Automatically skips already encrypted/decrypted files
  • In-Memory Decryption: Preview encrypted files without saving to disk
  • Batch Operations: Process multiple files with progress tracking

🎨 User Interface

  • Modern Design: Clean, intuitive Material Design-inspired UI
  • Dark/Light Themes: Automatic theme switching with manual override
  • Responsive Layout: Adapts to different screen sizes and orientations
  • File Previews: Thumbnail generation for images and videos
  • Progress Tracking: Real-time progress indicators for operations

πŸ’Ύ Platform Support

Platform Status Minimum Version
πŸ€– Android βœ… Supported API 21+
πŸͺŸ Windows βœ… Supported 10.0.17763.0+
🍎 iOS 🚧 Coming Soon 15.0+
πŸ’» macOS 🚧 Coming Soon Catalyst 15.0+

Note: Currently supporting Android and Windows. iOS and macOS support coming soon!

πŸ“₯ Download

Latest Release (v1.0.0)

Platform Download
πŸ€– Android Download APK
πŸͺŸ Windows Download ZIP
🍎 iOS/macOS Coming soon in future release

Note: Currently supporting Android and Windows. iOS and macOS support coming soon!

πŸš€ Getting Started

Prerequisites

To build from source, you'll need:

  • .NET 10 SDK or later
  • Visual Studio 2022 17.8+ or Visual Studio Code with C# extension
  • Platform-specific requirements:
    • Android: Android SDK (API 34+)
    • iOS/macOS: Xcode 15+ (macOS only)
    • Windows: Windows 10/11 SDK

Installation

Option 1: Download Pre-built Release

  1. Go to the Releases page
  2. Download the appropriate package for your platform
  3. Install and run

Option 2: Build from Source

  1. Clone the repository

    git clone https://github.com/Yous2ef/Encryptor-MAUI.git
    cd Encryptor-MAUI
  2. Restore dependencies

    dotnet restore
  3. Build for your platform

    Android:

    dotnet build -f net10.0-android -c Release

    Windows:

    dotnet build -f net10.0-windows10.0.19041.0 -c Release

    iOS/macOS builds coming soon!

  4. Run the app

    dotnet run

πŸ“– Usage

Encrypting Files

  1. Add files: Tap the + button and select files or folders
  2. Enter key: Type a strong encryption password
  3. Select mode: Choose "πŸ” Encrypt Mode"
  4. Encrypt: Tap "START ENCRYPTION"

The app will:

  • Generate a unique salt and IV for each file
  • Encrypt using AES-256-CBC
  • Save as filename.ext.enc
  • Optionally delete the original

Decrypting Files

  1. Add encrypted files: Tap + to select .enc files
  2. Enter key: Type the same password used for encryption
  3. Select mode: Choose "πŸ”“ Decrypt Mode"
  4. Decrypt: Tap "START DECRYPTION"

The app will:

  • Decrypt files to memory (no disk I/O)
  • Show previews for supported file types
  • Allow individual or batch saving

File Viewer

  • Preview: Tap any decrypted file to view it
  • Save: Use the πŸ’Ύ button to save individual files
  • Save All: Save all decrypted files to a chosen folder

πŸ”§ Technical Details

Architecture

Encryptor/
β”œβ”€β”€ Models/              # Data models (FileModel)
β”œβ”€β”€ ViewModels/          # MVVM ViewModels
β”œβ”€β”€ Views/               # XAML pages
β”œβ”€β”€ Services/            # Business logic
β”‚   β”œβ”€β”€ EncryptionService    # AES-256 encryption
β”‚   β”œβ”€β”€ FileService          # File I/O operations
β”‚   └── ScopedDataService    # Shared data between pages
β”œβ”€β”€ Converters/          # Value converters for UI
β”œβ”€β”€ Platforms/           # Platform-specific code
└── Resources/           # Images, fonts, styles

Encryption Specifications

  • Algorithm: AES-256 in CBC mode
  • Key Derivation: PBKDF2-HMAC-SHA256
  • Iterations: 100,000 (OWASP recommendation)
  • Salt Size: 256 bits (32 bytes)
  • IV Size: 128 bits (16 bytes)
  • Padding: PKCS7

Encrypted File Format:

[32-byte Salt][16-byte IV][Encrypted Data]

Dependencies

  • Microsoft.Maui - Cross-platform UI framework
  • CommunityToolkit.Mvvm - MVVM helpers (8.4.0)
  • CommunityToolkit.Maui - Additional MAUI controls (11.2.0)
  • CommunityToolkit.Maui.MediaElement - Media playback (4.1.0)

Performance

  • Streaming Encryption: Processes files in 1MB chunks to handle large files efficiently
  • Memory Management: Automatic cleanup of decrypted data when no longer needed
  • Progress Reporting: Real-time progress updates during operations
  • Cancellation Support: Cancel long-running operations at any time

πŸ›‘οΈ Security Considerations

βœ… Best Practices Implemented

  • Strong encryption (AES-256)
  • Secure key derivation (PBKDF2)
  • Random salt and IV per file
  • Memory cleanup after decryption
  • No key storage (user must remember)

⚠️ Important Notes

  • Store your password safely: Lost passwords cannot be recovered
  • Use strong passwords: Minimum 12 characters, mixed case, numbers, symbols
  • Backup encrypted files: Keep copies before decryption
  • Secure deletion: Original files are deleted after encryption (if selected)

🀝 Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/AmazingFeature)
  3. Commit your changes (git commit -m 'Add some AmazingFeature')
  4. Push to the branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

πŸ“„ License

This project is licensed under the MIT License.

πŸ™ Acknowledgments

πŸ“ž Contact

Yous2ef - @Yous2ef

Project Link: https://github.com/Yous2ef/Encryptor-MAUI


Made with ❀️ using .NET MAUI
If you find this project useful, please consider giving it a ⭐️

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages