Cryptos-App is a cross-platform desktop application combining a Flutter-based GUI with Python backend logic for cryptographic operations. The app enables users to encrypt/decrypt data using classical and modern algorithms, with seamless communication between the Flutter interface and Python scripts via the Process
class.
- Substitution Ciphers
- Vigenère Cipher
- Playfair Cipher
- Transposition Ciphers
- Columnar Transposition
- Symmetric Key Algorithms
- AES (Advanced Encryption Standard)
- Asymmetric Key Algorithms
- RSA (Key generation, encryption/decryption)
- Hashing
- SHA-256, MD5
- Diffie-Hellman Algorithm
- Algorithm selection via Flutter dropdown menu.
- Text encryption/decryption with real-time results.
- Key input fields (where applicable).
- Error handling for invalid inputs.
- Frontend: Flutter (Desktop compatible) for GUI.
- Backend: Python scripts for cryptographic logic.
- Communication: Flutter
Process
class to execute Python scripts with arguments.
- Python:
sys
(for command-line argument parsing).
- Flutter:
process_run
package for process management.
scripts/
vigenere.py
playfair.py
aes.py
rsa.py
hashing.py
- ...
All Python scripts MUST adhere to the following input/output conventions:
- Accept arguments via command line using
sys
. - Required arguments:
encode
,decode
, orhash
.- plaintext/ciphertext.
- if applicable, e.g., AES key or Vigenère keyword.
- Return results as a Plain text string to stdout.
- Example for encryption with a
<key>
:<encrypted_text>
import sys
def aes_encrypt(plaintext, key):
# Implementation logic here
return ciphertext
if __name__ == "__main__":
if len(sys.argv) != 4:
print("Usage: python aes128.py [encode|decode] [text] [key]", file=sys.stderr)
sys.exit(1)
operation = sys.argv[1].lower()
text = sys.argv[2]
key = sys.argv[3]
if operation == "encode":
print(aes_encrypt_string(text, key))
elif operation == "decode":
print(aes_decrypt_string(text, key))
else:
print("Invalid operation. Use 'encode' or 'decode'.", file=sys.stderr)
sys.exit(1)
This hybrid architecture leverages Flutter's rich UI capabilities and Python's robust cryptographic libraries, providing a flexible and scalable solution. By standardizing input/output formats and using process-based communication, the system ensures maintainability and ease of extension for new algorithms.