CryptoTools is a WinUI 3 application that offers a variety of tools for cryptography. It is written in C# and uses .NET 8.0.
The application is divided into 6 tabs:
- Zip: Compression and decompression of ZIP files
- Hashing: Hashing of text and files using MD5, SHA1, SHA256, SHA384, SHA512
- Encryption: Visualization of encrypted and decrypted images
- Privacy: Encryption and decryption of files using AES, DES, TripleDES, RC2, and RSA
- Integrity: File integrity checking using MD5, SHA1, SHA256, SHA384, SHA512
- Signature: Digital signature creation and verification using AES, DES, TripleDES, RC2, and RSA
- Chatting: A fully encrypted chatroom that uses AES for encryption, RSA for key exchange, and HMAC-SHA256 for message authentication
The solution contains 3 projects:
- CryptoTools: The main project that contains the user interface and the client-side logic
- CryptoServer: A server that handles the requests from the client and stores the data in a database
- CryptoLib: A library that contains the logic for cryptography and database operations, as well as the models for the database
- CryptoTools
These instructions will get you a copy of the project up and running on your local machine for development and testing purposes.
- .NET 7.0 or later
- Visual Studio 2022 or later
- As an alternative to Visual Studio, JetBrains Rider or Visual Studio Code can be used
- Download the latest release from the releases page
- Extract the zip file
- Run CryptoTools.exe
- A "Login" window will appear. The user can either login or register a new account
- After logging in, the main window will appear
- Clone the repository
- Open the solution in Visual Studio 2022 or later, JetBrains Rider, or Visual Studio Code
- Build the "CryptoTools" project
- Click the "Zip" tab
- Click "Add folder" or "Add file" to add files or folders to the list
- Click "Zip" to create a zip file
- Click "Unzip" to extract a zip file
- Click the "Hashing" tab
- Select the hashing algorithm
- Enter the text or select the file to hash
- Click the "Encryption" tab
- Select the encryption algorithm
- Select or drag and drop an image file
- View the encrypted image
- Click the "Privacy" tab
- Select the encryption algorithm
- Select or drag and drop a file to encrypt
- A file with the same name and the extension ".enc" will be created
- To decrypt the file, select the decryption algorithm and select or drag and drop the encrypted file
- Click the "Integrity" tab
- Select the hashing algorithm
- Select or drag and drop a file to hash
- An entry will be added to the server database
- To check the integrity of the file, select the hashing algorithm and select or drag and drop the file
- The result will be displayed (valid or invalid)
- Click the "Signature" tab
- Select or drag and drop a file to sign
- A file with the same name and the extension ".sign" will be created
- To verify the signature, select or drag and drop the signed file
- The result will be displayed (valid or invalid)
- Click the "Chatting" tab
- A message from the server will appear in the chat window
- Enter a message in the text box and press enter to send the message
- The message will be encrypted and sent to the server
- The server will decrypt the message and send it to all clients
- The message will be displayed in the chat window
This project is licensed under the MIT License - see the LICENSE.md file for details.
This project is for educational purposes only. The authors are not responsible for any misuse of the application.