A lightweight WPF desktop application for encoding, decoding, encrypting, and decrypting text using a variety of algorithms — all from a single, clean interface.
| Algorithm | Encode / Encrypt | Decode / Decrypt |
|---|---|---|
| Base64 | ✅ | ✅ |
| HTML | ✅ | ✅ |
| URL | ✅ | ✅ |
| AES | ✅ | ✅ |
| Triple DES | ✅ | ✅ |
- MVVM architecture — built with CommunityToolkit.Mvvm
- Secure key input — AES and Triple DES keys and IVs are entered via
PasswordBoxand stored asSecureString; intermediate byte arrays are zeroed immediately after use - Single-file publish — releases as a self-contained-free, single
win-x64executable
| Requirement | Version |
|---|---|
| OS | Windows 10 / 11 (x64) |
| Runtime | .NET 10 Desktop Runtime |
- Download the latest executable from the Releases page.
- Ensure the .NET 10 Desktop Runtime is installed.
- Run
CryptorApp.exe.
git clone https://github.com/TheBlueHeron/Cryptor.git
cd Cryptor
dotnet build CryptorApp/CryptorApp.csprojTo produce a single-file release build:
dotnet publish CryptorApp/CryptorApp.csproj -c Release- Select an algorithm from the dropdown list.
- For AES or Triple DES, enter the key and IV in the settings panel:
- AES: key must be 16, 24, or 32 bytes; IV must be 16 bytes.
- Triple DES: key must be 16 or 24 bytes (non-weak); IV must be 8 bytes.
- Paste or type the input text.
- Click Convert to see the result.
CryptorApp/
├── Common/
│ ├── Crypt.cs # Encoding helpers (StringToBytes, SecureStringToBytes, …)
│ ├── CryptResult.cs # Result struct returned by every ICryptor
│ └── ICryptor.cs # Shared interface for all encode/decode operations
├── Cryptors/
│ ├── AesCryptor.cs # AES encrypt / decrypt
│ ├── Base64Cryptor.cs # Base64 encode / decode
│ ├── HtmlCryptor.cs # HTML encode / decode
│ ├── TripleDesCryptor.cs # Triple DES encrypt / decrypt
│ └── UrlCryptor.cs # URL encode / decode
├── ViewModels/
│ ├── MainViewModel.cs # Main window view model
│ └── SettingsViewModel.cs # Key / IV settings view model
└── Views/
├── CryptSettings.xaml # Key / IV settings control
├── MainWindow.xaml # Main application window
└── PasswordBoxHelper.cs # Attached behavior for SecureString ↔ PasswordBox binding
| Package | Version |
|---|---|
| CommunityToolkit.Mvvm | 8.4.1 |
| Microsoft.Xaml.Behaviors.Wpf | 1.1.142 |
Contributions are welcome! Please open an issue first to discuss what you would like to change, then submit a pull request.
- Fork the repository
- Create a feature branch (
git checkout -b feature/my-feature) - Commit your changes (
git commit -m 'Add my feature') - Push to the branch (
git push origin feature/my-feature) - Open a Pull Request
Distributed under the MIT License. See LICENSE for details.