Welcome to SecureCrypt β an interactive, browser-based encryption and decryption platform built with Streamlit.
This system allows users to securely perform random and pseudo-random key-based XOR encryption on both image and text files, and compare their security characteristics.
SecureCrypt provides a hands-on playground for understanding how cryptographic key generation affects data security.
With support for both truly random and deterministically generated (pseudo-random) keys, this system lets users:
- π Encrypt/Decrypt files with full control
- π Analyze key entropy and encryption time
- π Compare security outcomes visually and statistically
- πΌ Encrypt/Decrypt Images with XOR logic using random or pseudo-random keys
- π Encrypt/Decrypt Text Files (
.txt,.csv,.logsupported) - π² Random Key Generation using Python's
secretsmodule - π€ Pseudo-Random Key Generation using
randomwith a user-defined seed - π Compare Key Entropy & Performance (via integrated Flask API)
- πΎ File download and preview support
- π‘ Simple, elegant GUI built using Streamlit
- Select Operation: Choose from image/text encryption, decryption, or key comparison
- Upload Files: Provide your source files and key/seed where required
- Choose Key Type: Select random or pseudo-random key for the operation
- Download Results: Get encrypted/decrypted files and the generated keys
- Compare Security: Evaluate entropy and encryption speed for both key types
The interface offers:
- β Sidebar navigation for operation selection
- β File uploader widgets for source and key files
- β Download buttons for encrypted/decrypted outputs
- β Entropy and encryption time display in comparison view
Start the comparison server:
python compare_encryption.pyIn a new terminal, run the frontend:
streamlit run SecureCrypt.py
This will launch the user interface in your default browser at http://localhost:8501.
SecureCrypt/
βββ compare_encryption.py
βββ imageEncDec.py
βββ imageEncDec.py
βββ SecureCrypt.py
βββ README.md
- Keep your keys secure; random keys offer stronger security but are harder to reproduce
- Pseudo-random keys enable repeatable encryption with the same seed
- Use the comparison feature to understand key entropy and encryption speed tradeoffs
Contributions are welcome! Feel free to fork the repository and submit pull requests. For major changes, please open an issue first to discuss what you would like to change.
For questions or collaborations, reach out via GitHub.