PyCipher-CLI is a command-line encryption tool for plain-text (.txt) files.
This project extends Pycipher, a Python library for encryption algorithms, by providing a command-line interface for the library's encryption algorithms.
To call this script, first make sure Python 3.10.x is installed on your machine and that your system's PATH variable is configured accordingly. This project also depends on pycipher (install instructions). For more information, check out https://www.python.org/downloads/.
Once Python is installed, you can use this script by entering the ../src/pycipher-cli/
directory and call it using python3 pyccli.py [args]
.
Example use-case: Caesar cipher.
python3 pyccli.py -i 'msg.txt' -o 'secret.txt' --cipher 'caesar'
options:
-h, --help show this help message and exit
-i INPUT, --input INPUT
path/to/input/file
-o OUTPUT, --output OUTPUT
path/to/output/file. optional; default=io/output.txt
--cipher {adfgx, adfgvx, affine, autokey, atbash,
beaufort, bifid, caesar, col-trans,
gronsfeld, playfair, polybius, porta,
rail-fence, rot13, simple-sub, vigenere}
the cipher option selected
-k [KEYS ...], --keys [KEYS ...]
key(s) for the cipher
--decrypt enables decryption mode
This project seeks to be a well-designed command-line interface application; all of the documentation necessary for use can be found using the -h
or --help
arguments.
As this project is largely built on top of Pycipher, its documentation may be helpful for prospective contributors.
- ADFGX
- ADFGVX
- Affine
- Autokey
- Atbash
- Beaufort
- Bifid
- Caesar
- Columnar transposition
- Gronsfeld cipher
- Playfair
- Polybius Square (wip)
- Porta
- Rail-fence
- Rot13
- Simple Substitution
- Vigenere
Please note: this project does not yet support decryption.
This project builds heavily on information compiled by James Lyons at http://practicalcryptography.com, as well as his Pycipher library.
To learn more about cryptography and its history, check out his site Practical Cryptography.
Copyright © 2023 nxrada
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program. If not, see https://www.gnu.org/licenses/gpl-3.0.en.html