{"id":22144739,"url":"https://github.com/mohamedsaidsallam/encryption-techniques","last_synced_at":"2025-03-24T12:19:15.597Z","repository":{"id":135770776,"uuid":"331074103","full_name":"MohamedSaidSallam/Encryption-Techniques","owner":"MohamedSaidSallam","description":"A simple python script that offers multiple simple implementations for encryption techniques. Done as a project for ASU 2020, Computer and Network Security course.","archived":false,"fork":false,"pushed_at":"2021-01-22T20:24:28.000Z","size":24,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-01-29T17:23:44.875Z","etag":null,"topics":["aes","aes-cipher","aes-encryption","argparse","ceasar-cipher","des-cipher","des-encryption","hill-cipher","playfair-cipher","python","venv","vernam-cipher","vigenere-cipher"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/MohamedSaidSallam.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.MD","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-01-19T18:35:48.000Z","updated_at":"2021-01-22T20:24:44.000Z","dependencies_parsed_at":"2024-06-06T22:45:51.860Z","dependency_job_id":null,"html_url":"https://github.com/MohamedSaidSallam/Encryption-Techniques","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MohamedSaidSallam%2FEncryption-Techniques","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MohamedSaidSallam%2FEncryption-Techniques/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MohamedSaidSallam%2FEncryption-Techniques/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MohamedSaidSallam%2FEncryption-Techniques/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/MohamedSaidSallam","download_url":"https://codeload.github.com/MohamedSaidSallam/Encryption-Techniques/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245267567,"owners_count":20587459,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["aes","aes-cipher","aes-encryption","argparse","ceasar-cipher","des-cipher","des-encryption","hill-cipher","playfair-cipher","python","venv","vernam-cipher","vigenere-cipher"],"created_at":"2024-12-01T22:31:30.246Z","updated_at":"2025-03-24T12:19:15.571Z","avatar_url":"https://github.com/MohamedSaidSallam.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Encryption Techniques Python\n\n[![GitHub Release][github_release_badge]][github_release_link]\n[![License][license-image]][license-url]\n\nA simple python script that offers multiple simple implementations for encryption techniques. Done as a project for ASU 2020, Computer and Network Security course.\n\nSupported Encryption Techniques:\n\n- AES\n- DES\n- Playfair Cipher\n- Hill Cipher\n- Vernam Cipher\n- Vigenere Cipher\n- Ceasar Cipher\n\n## Getting Started\n\nThese instructions will get you a copy of the project up and running on your local machine for development and testing purposes. See deployment for notes on how to deploy the project on a live system.\n\n### Prerequisites\n\nInstall the requirements using the following:\n\n```sh\npip install -r requirements.txt\n```\n\nor if you are using python venv:\n\n```sh\npython -m venv venv\nvenv/Scripts/activate\npip install -r requirements.txt\n```\n\n### Running the code\n\nyou can get the list of paramters using the following:\n\n```sh\npython -m encryption --help\n```\n\nor\n\n```sh\nvenv\\Scripts\\python.exe -m encryption --help\n```\n\nor\n\n```sh\nvenv/Scripts/activate\npython -m encryption --help\n```\n\nOutput:\n\n```sh\nusage: __main__.py [-h] -i INPUT [-o OUTPUT] [--caesarCipherEncrypt]\n                   [--vigenereCipherEncrypt] [--vernamCipherEncrypt]\n                   [--hillCipherEncrypt] [--playfairCipherEncrypt]\n                   [--DESEncrypt] [--DESDecrypt] [--AESEncrypt] [--AESDecrypt]\n                   ...\n\nA simple python script that offers multiple simple impementation for\nencryption techniques.\n\npositional arguments:\n  algoParam\n\noptional arguments:\n  -h, --help            show this help message and exit\n  -i INPUT, --input INPUT\n                        Path to input file\n  -o OUTPUT, --output OUTPUT\n                        Path to output file. (default: output.txt)\n  --caesarCipherEncrypt\n                        selects 'caesarCipherEncrypt' as the encryption\n                        technique to use. (parameters: key size (shift),\n                        default: 3)\n  --vigenereCipherEncrypt\n                        selects 'vigenereCipherEncrypt' as the encryption\n                        technique to use. (parameters: mode(0: repeating, 1:\n                        auto), key)\n  --vernamCipherEncrypt\n                        selects 'vernamCipherEncrypt' as the encryption\n                        technique to use. (parameters: key)\n  --hillCipherEncrypt   selects 'hillCipherEncrypt' as the encryption\n                        technique to use. (parameters: key matrix (elements\n                        seperated by ',', e.g. 5,17,8,3))\n  --playfairCipherEncrypt\n                        selects 'playfairCipherEncrypt' as the encryption\n                        technique to use. (parameters: key)\n  --DESEncrypt          selects 'DESEncrypt' as the encryption technique to\n                        use. (parameters: key(16 Hex Chars), Number of rounds)\n  --DESDecrypt          selects 'DESDecrypt' as the encryption technique to\n                        use. (parameters: key(16 Hex Chars), Number of rounds)\n  --AESEncrypt          selects 'AESEncrypt' as the encryption technique to\n                        use. (parameters: Key (32 Hex characters))\n  --AESDecrypt          selects 'AESDecrypt' as the encryption technique to\n                        use. (parameters: Key (32 Hex characters))\n\nSource: https://github.com/TheDigitalPhoenixX/Encryption-Techniques\n```\n\n#### Run Example Input\n\nClassical Ciphers:\n\n```sh\npy -m encryption -i \"input examples/Caesar/caesar_plain.txt\" -o caesar_3.txt --caesarCipherEncrypt 3\npy -m encryption -i \"input examples/Caesar/caesar_plain.txt\" -o caesar_6.txt --caesarCipherEncrypt 6\npy -m encryption -i \"input examples/Caesar/caesar_plain.txt\" -o caesar_12.txt --caesarCipherEncrypt 12\npy -m encryption -i \"input examples/Hill/hill_plain_2x2.txt\" -o hill_2x2.txt --hillCipherEncrypt 5,17,8,3\npy -m encryption -i \"input examples/Hill/hill_plain_3x3.txt\" -o hill_3x3.txt --hillCipherEncrypt 2,4,12,9,1,6,7,5,3\npy -m encryption -i \"input examples/PlayFair/playfair_plain.txt\" -o playfair_rats.txt --playfairCipherEncrypt rats\npy -m encryption -i \"input examples/PlayFair/playfair_plain.txt\" -o playfair_archangel.txt --playfairCipherEncrypt archangel\npy -m encryption -i \"input examples/Vernam/vernam_plain.txt\" -o vernam_txt --vernamCipherEncrypt SPARTANS\npy -m encryption -i \"input examples/Vigenere/vigenere_plain.txt\" -o vigenere_true.txt --vigenereCipherEncrypt 1 aether\npy -m encryption -i \"input examples/Vigenere/vigenere_plain.txt\" -o vigenere_false.txt --vigenereCipherEncrypt 0 pie\n```\n\nDES:\n\n```sh\npy -m encryption -i \"input examples/des.txt\" -o des_1.txt --DESEncrypt 0000000000000000 1\npy -m encryption -i \"input examples/des.txt\" -o des_2.txt --DESEncrypt 0000000000000000 2\npy -m encryption -i \"input examples/des_decrypt_1.txt\" -o des_decrypt_1.txt --DESDecrypt 0000000000000000 1\npy -m encryption -i \"input examples/des_decrypt_2.txt\" -o des_decrypt_2.txt --DESDecrypt 0000000000000000 2\n```\n\nAES:\n\n```sh\npy -m encryption -i \"input examples/aes.txt\" -o aes.txt --AESEncrypt 0123456789ABCDEF0123456789ABCDEF\npy -m encryption -i \"input examples/aes_decrypt.txt\" -o aes_decrypt.txt --AESDecrypt 0123456789ABCDEF0123456789ABCDEF\n```\n\n## Built With\n\n- [Visual Studio Code](https://code.visualstudio.com/) - Code Editor\n\n## Contributing\n\nPlease read [CONTRIBUTING.md](CONTRIBUTING.md) for details on our code of conduct, and the process for submitting pull requests to us.\n\n## Versioning\n\nWe use [SemVer](http://semver.org/) for versioning. For the versions available, see the [tags on this repository][github-tags].\n\n## Authors\n\n- **Mohamed Said Sallam** - Main Dev - [TheDigitalPhoenixX](https://github.com/TheDigitalPhoenixX)\n\nSee also the list of [contributors][github-contributors] who participated in this project and their work in [CONTRIBUTORS.md](CONTRIBUTORS.md).\n\n## License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details\n\n## Acknowledgments\n\n- [README.md Template](https://gist.github.com/PurpleBooth/109311bb0361f32d87a2)\n\n[license-image]: https://img.shields.io/badge/License-MIT-brightgreen.svg\n[license-url]: https://opensource.org/licenses/MIT\n\n[github_release_badge]: https://img.shields.io/github/v/release/TheDigitalPhoenixX/Encryption-Techniques.svg?style=flat\u0026include_prereleases\n[github_release_link]: https://github.com/TheDigitalPhoenixX/Encryption-Techniques/releases\n\n[github-contributors]: https://github.com/TheDigitalPhoenixX/Encryption-Techniques/contributors\n[github-tags]: https://github.com/TheDigitalPhoenixX/Encryption-Techniques/tags\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmohamedsaidsallam%2Fencryption-techniques","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmohamedsaidsallam%2Fencryption-techniques","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmohamedsaidsallam%2Fencryption-techniques/lists"}