KaueMiziara / k-basic-ciphers

Encode and decode text using different ciphers.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

K's Basic Ciphers

This project was creatad as an excuse to learn how to use QML and integrate it with Rust.

How to build from source

Can be built using cmake, as long you have the dependencies installed.

First, clone the source code (or download the .zip file):

git clone https://github.com/KaueMiziara/k-basic-ciphers.git

Then, open the directory in the terminal and use cmake to build the executable:

cd path/to/directory

# This will create a 'build' folder and generate the buildsystem
cmake -S . -B build

# This will build the project using the generated buildsystem
cmake --build build

The app will be inside the 'build' folder.

About the Ciphers

Currently, the application can encode and decode text using the following ciphers:

Caesar Cipher/Shift

The Caesar Cipher is one of the most famous encryption technique.
It consists in, given a number that will be used as a "key" (also called "shift"), replacing each letter in a word for the letter key positions down the alphabet, i.e. using a shift of 1, "ABC" will turn into "BCD".
The method was named after Gaius Julius Caesar, a roman general and emperor that used this cipher with a shift of 3 to send messages to his generals.

Vigenère Cipher

An improved Caesar Shift.
Instead of shifting all the characters in a text by the same key, this cipher often uses a password or a passphrase:
Each letter in the password is converted to a keythe number relative to its position in the alphabet ("A" = 1, "B" = 2, etc.). Then, each character in the text is shifted by the key in the same position, looping the password if it's shorter than the text.
For example, using "ACE" (135) as password, "ABC" will turn into "BEH".
Although being invented by the italian crypthologist Giovan Battista Bellaso, this cipher was erroneously named after the french cryptographer Blaise de Vigenère, who created a similar cipher, called "autokey cipher".
This cipher earned the description "le chiffrage indéchiffrable" ("indecipherable cipher") for taking over 300 years until someone managed to break it.

About

Encode and decode text using different ciphers.


Languages

Language:QML 57.3%Language:Rust 29.0%Language:CMake 9.1%Language:C++ 4.7%