{"id":15049232,"url":"https://github.com/ternion-1121/ezcipher","last_synced_at":"2026-04-01T17:17:03.801Z","repository":{"id":216926060,"uuid":"742710141","full_name":"TERNION-1121/ezCipher","owner":"TERNION-1121","description":"A CLI in C to encrypt and decrypt text using a variety of cipher algorithms","archived":false,"fork":false,"pushed_at":"2024-02-14T05:29:10.000Z","size":34,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-12-29T19:34:19.377Z","etag":null,"topics":["beginner-friendly","c","c99","caesar-cipher","cipher","cipher-algorithms","ciphering","ciphers","ciphertext","cli","cpp","decryption-algorithm","encryption-algorithms","encryption-decryption","substitution-cipher"],"latest_commit_sha":null,"homepage":"","language":"C","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/TERNION-1121.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"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":"2024-01-13T06:03:22.000Z","updated_at":"2024-02-11T17:28:25.000Z","dependencies_parsed_at":"2024-10-12T17:20:46.712Z","dependency_job_id":"e02adf32-f865-4a53-9f4c-972d0873acac","html_url":"https://github.com/TERNION-1121/ezCipher","commit_stats":null,"previous_names":["ternion-1121/ezcipher"],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/TERNION-1121/ezCipher","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TERNION-1121%2FezCipher","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TERNION-1121%2FezCipher/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TERNION-1121%2FezCipher/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TERNION-1121%2FezCipher/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/TERNION-1121","download_url":"https://codeload.github.com/TERNION-1121/ezCipher/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TERNION-1121%2FezCipher/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31027752,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-27T04:58:43.976Z","status":"ssl_error","status_checked_at":"2026-03-27T04:58:17.966Z","response_time":164,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["beginner-friendly","c","c99","caesar-cipher","cipher","cipher-algorithms","ciphering","ciphers","ciphertext","cli","cpp","decryption-algorithm","encryption-algorithms","encryption-decryption","substitution-cipher"],"created_at":"2024-09-24T21:19:12.098Z","updated_at":"2026-03-27T06:02:06.004Z","avatar_url":"https://github.com/TERNION-1121.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003ch1 align=\"center\"\u003e 👨‍💻 ezCipher 👾  \u003c/h1\u003e\n\u003cp align=\"center\"\u003e A simple CLI in C to encrypt and decrypt text using a variety of cipher algorithms. \u003c/p\u003e\n\n\n## 📜 Description \n__*\"In cryptography, a cipher (or cypher) is an algorithm for performing encryption or decryption—a series of well-defined steps that can be followed as a procedure... \nciphers generally substitute the same number of characters as are input.\"*__ ~ _Wikipedia_.\n\n\u003cbr\u003e\n\n### The \"Why\" of this project\n\nWhile going through [CS50x 2024's Problem Set 2](https://cs50.harvard.edu/x/2024/psets/2/), an idea clicked in my mind to code a Command-Line Tool that would take a Cipher algorithm, the way the user wishes to use it i.e. to choose between an Encryption/Decryption mode, take some text, process it as per the given requirements, and output the result. Simple enough, right?\n\nAnd thus, I began working on this project, having in mind a similar objective.\n\n\u003chr\u003e\n\n### Prerequisites\n\nTo use this program, a basic knowledge of ciphers would be a prerequisite.\n\nCurrently it features the below cipher algorithms:\n  1. [Caesar](https://github.com/TERNION-1121/ezCipher/tree/main/cipher-descriptions/caesar.md)\n  2. [Substitution](https://github.com/TERNION-1121/ezCipher/tree/main/cipher-descriptions/substitution.md)\n  3. [Vigenère]()\n  \nClick on a cipher name to view its description/explanation.\n\n### How to run the program?\n__Requirements__: A C compiler, such as GCC or Clang.\n\n1. Clone this repository\n2. Open the terminal, and navigate to the repository `~/ezCipher`\n3. Run the command `clang -o ec src/ec.c src/utils/utils.c src/ciphers/caesar.c src/ciphers/substitution.c src/ciphers/vigenere.c`\n\u003e You can also use `gcc` instead of `clang`\n4. Run `./ec`\n5. You'll be prompted with this message\n```\n\nerror: incorrect number of arguments given, expected 4 -\u003e 1\n\nUSAGE: ./ec \u003ccipher\u003e \u003cencrypt/decrypt_mode\u003e \u003ckey\u003e\n\n\u003ccipher\u003e:\n        caesar\n        substitution\n        vigenere\n\n\u003cencrypt/decrypt_mode\u003e:\n        encrypt\n        decrypt\n\n\u003ckey\u003e: in accordance with the opted cipher\n\n```\n.. You can either make use of the instructions given here, or follow along for a small example.\n\n\u003cbr\u003e\n\n#### An example\n1. Let's test the program by using `caesar` cipher with a key of value, say 2.\n2. Run\n```\n./ec caesar encrypt 2\nHello, World!\nThis is ezCipher.\n```\n\u003e Note: to end giving input, enter a newline and enter the EOF character (`Ctrl + Z` on Windows, `Ctrl + D` on Linux).\n3. Output:\n```\nJgnnq, Yqtnf!\nVjku ku gbEkrjgt.\n```\n4. Run\n```\n./ec caesar decrypt 2\nJgnnq, Yqtnf!\nVjku ku gbEkrjgt.\n```\n5. Output:\n```\nHello, World!\nThis is ezCipher.\n```\n\nVoila! Now you know how to use ezCipher for encrypting and decrypting your texts!\n\n\u003cbr\u003e\n\nTo give some syntax on the program usage:\n\n```\n$ ./ec \u003ccipher_algorithm_option\u003e \u003cencrypt_or_decrypt_mode\u003e \u003cKEY\u003e \n\u003cplaintext_spread_over_multiple_lines\u003e\n\u003cEOF\u003e\n\u003cprocessed_text\u003e\n```\n\nWhere,\n```\n\u003ccipher_algorithm_option\u003e\n  caesar\n  substitution\n  vigenere\n\n\u003cencrypt_or_decrypt_mode\u003e\n  encrypt\n  decrypt\n  \n\u003cKEY\u003e\n  in accordance with the opted cipher\n```\n\n\u003chr\u003e\n\u003cbr\u003e\n\n## 🎯 Learnings\nThis was my first C Project that was spread over more than a single file! \n\nI learnt how to use header files to include content from different files into another. The code was written by me, with a side-quest to keep up with some common coding conventions.\n\nI believe the code is well organised to some point. Let me know what I can do better with the code! (more about this in Contributions)\n\n\u003cbr\u003e\n\n## ✏️ On Contributions\nThis marks the first release of `ezCipher`. \n\nI'd appreciate help in all forms, from beautifying the README or the code itself, to adding new cipher options!\nThanks for your kind attention!","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fternion-1121%2Fezcipher","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fternion-1121%2Fezcipher","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fternion-1121%2Fezcipher/lists"}