Cracking Codes with Style: The Performant Programming_Cipher_App Adventure
Welcome to the covert operations of the PerformantProgramming_Cipher_App, a realm where the ancient art of cipher meets modern programming prowess. Here, Python and C++ join forces in a thrilling mission to encrypt and decrypt messages, challenging the boundaries of performance and unveiling the mysteries of the XOR cipher technique.
For source code please visit the Github repository here: styled-components-basic-webpage
Overview
The PerformantProgramming_Cipher_App is a Python-based application designed to demonstrate the implementation of a cipher algorithm, specifically focusing on XOR cipher techniques. It combines both Python and C programming to illustrate the effectiveness and performance differences across these languages for encrypting and decrypting text.
Repository Structure
cipher.cpp
: C++ implementation of the XOR cipher algorithm. It defines a functioncipher
that performs the XOR operation on a given message using a specified key.cipher.py
: Python script that interfaces with the C++ library to perform encryption and decryption. It also includes a GUI built with curses for user interaction.docs/Ex3 - Cipher App.pdf
: Documentation file that provides an overview and specifications for the cipher application.Ex3 - Sample Output.txt
: Contains sample output from running the application, showcasing the expected results.test.py
: A test script demonstrating the basic usage of the cipher function in Python.CMakeLists.txt
&Makefile
: Configuration files for building the C++ component of the project using CMake and Make.test.txt
: A text file containing sample data used for encryption and decryption testing.docs/Ex3-Snippet.py
: Provides a Python snippet of the cipher function, illustrating how to perform XOR operations on text.
Key Functionalities
XOR Cipher Algorithm
The core functionality of this application revolves around the XOR cipher, a simple encryption technique that applies the XOR bitwise operation to text using a key. Both cipher.cpp
and cipher.py
implement this algorithm, showcasing its usage in C++ and Python, respectively.
C++ and Python Integration
- The project illustrates how to compile and integrate C++ code into a Python script using ctypes. This approach allows for performance comparisons between native Python implementations and optimized C++ algorithms.
cipher.cpp
is compiled into a shared library, whichcipher.py
loads and interacts with to perform encryption and decryption.
User Interface
- The application features a text-based user interface created with the Python curses library. This interface guides users through performing encryption/decryption operations, loading text from files, and comparing the performance of the Python vs. C++ implementations.
Performance Benchmarking
- An integral part of the application is its focus on performance.
cipher.py
includes functionality to benchmark the encryption and decryption speed of both the Python and C++ implementations, providing insights into the efficiency of using compiled languages for performance-critical tasks.
Getting Started
To use this application:
- Compile the C++ code into a shared library using CMake or Make.
- Run
cipher.py
to start the application and follow the on-screen instructions to encrypt/decrypt text and perform benchmarks.
Conclusion
As our code-breaking odyssey concludes, the PerformantProgramming_Cipher_App stands as a testament to the fusion of old and new, of Python's charm and C++'s might. This expedition through the XOR cipher and beyond serves not just as a lesson in encryption but as a beacon for those who seek to blend performance with flexibility. So arm yourselves with knowledge, for in the world of PerformantProgramming, every character holds the key to infinite mysteries.