This is a multi-platform desktop application I built that enables users to covertly embed secret text within FLAC and WAV audio files, and extract secret messages from stego audio files produced using the same tool. My implementation places emphasis on configurability, allowing users to adjust key parameters such as:
- Starting frame - where in the audio the message will be located
- Bit depth - how many bits to utilise per frame
- Channels - how many channels to use
to influence how the algorithm behaves. This gives users more control over the algorithms process, allowing the same message to be to embedded into the same audio file in different ways.
Python Development
I opted to use Python as the programming language for this project because of its extensive library that I leveraged throughout the project for processes such as accessing the raw Pulse Code Modulation (PCM) samples of audio files, and building the GUI. As well as its clear syntax, which improves code readability and maintainability.
User Interface
For this project I wanted to provide users with different ways of using it. So the application offers both a Command Line Interface (CLI) for scripting and automation, and a Graphical User Interface (GUI) that serves as the primary interface for most users. While features were typically developed using the CLI first, I ensured that all CLI functionality was also available in the GUI as well.
GTK-4 GUI
GTK-4 was chosen for the GUI as it offers an effective means of creating a modern, cross-platform interface, that is supported by Python through the PyGObject package. Its CSS theming, rich built-in components, and native cross-platform rendering simplified development without any compromises. As a result, the GUI is clean, intuitive, and compatible with Linux, Windows, and MacOS.