The output of an exercise in learning how various ciphers work; an application that has the ability to encode/decode a text message using various ciphers.
Current ciphers supported:
- Caesar cipher
- Vigenère cipher
First build the app:
make
An executable named cipher
will be created in the bin/
directory.
From there, use the help command to see the list of options available.
cipher --help
Build the tests with
make test
An executable named run-tests
will be created in the bin/
directory.
Run the tests by executing run-tests
run-tests
Static analysis can be run on the codebase using Cppcheck and/or Infer.
I've made Makefile rules to run these tools with some suitable arguments.
make check-cppcheck
make check-infer
- Start finding ways to create a tool to help decipher Vigenère ciphers
- Add autokey mode to Vigenère cipher
- Add Vigenère cipher variation: Variant Beaufort
- Make Caesar & Vigenère ciphers able to work with a provided custom alphabet
- What should happen if a character in the key or plaintext is not present in the alphabet?
- Emit a warning and ignore the unknown character?
- What should happen if a character in the key or plaintext is not present in the alphabet?
- Add ability to read/write input/output files