evo-crypter is a customizable file encryption tool that utilizes an evolutionary approach to apply a series of transformation functions (mutations) to data. The core idea is to simulate a simplified evolutionary process where a sequence of mutations, defined by a "generation sequence," is applied iteratively to a file's contents. This project draws inspiration from the concept of genetic mutations and applies it to the realm of data encryption.
The project's mascot is Evo, a friendly dinosaur/reptile creature representing the software's evolution. Evo progresses through various stages, each symbolizing a version of the software. These stages are: Hatchling, Fledgling, Slithering, Raptor, Drake, Dragon, Flying, Wyvern, Old, Elder, and Ancient.
The algorithm can be described as an iterative, function composition-based encryption scheme inspired by evolutionary mutations. The user provides a comma-separated string (e.g., "1,a,#,4") that specifies the sequence of mutations to be applied. The length of the generation sequence determines the number of iterations (generations) the mutations will be applied. Each iteration represents a "generation" of mutation.
Security Considerations:
The project is currently in the Fledgling stage (v0.2.0). Here's a brief overview of the planned development stages:
For a more detailed roadmap, see docs/ROADMAP.md
.
Clone the repository:
Build the project using CMake:
Run the encryption tool:
<input_file>
: The path to the input file.<threads>
: The number of threads to use for processing (1 for single-threaded).<generation_sequence>
: A comma-separated string representing the sequence of mutations to apply (e.g., "1,2,a,#").[-d]
: Optional flag to decrypt instead of encrypt.Example:
build.sh
: Builds the executable.lint.sh
: Runs the linters for static code analysis.test.sh
: Runs the unit tests.update_version.sh
: Updates the project version and optionally creates a Git tag.We welcome contributions! See docs/CONTRIBUTING.md
for guidelines.
evo-crypter
follows Semantic Versioning (SemVer). See docs/VERSIONING.md
for details on the versioning strategy and automated workflows.
version.txt
file.version.txt
and run ./scripts/update_version.sh <new_version>
.evo-crypter
is licensed under the MIT License. See the LICENSE
file for more details.