{"id":18944492,"url":"https://github.com/null93/rsa-encryption","last_synced_at":"2025-09-05T10:34:01.980Z","repository":{"id":91417501,"uuid":"52900972","full_name":"null93/rsa-encryption","owner":"null93","description":"Implementation of the RSA encryption algorithm using big-integer algebra algorithms","archived":false,"fork":false,"pushed_at":"2019-04-30T02:43:20.000Z","size":1145,"stargazers_count":3,"open_issues_count":0,"forks_count":2,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-04-06T04:32:20.049Z","etag":null,"topics":["cryptography","rsa","rsa-encryption"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/null93.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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":"2016-03-01T18:45:58.000Z","updated_at":"2024-11-08T10:31:04.000Z","dependencies_parsed_at":null,"dependency_job_id":"94eadff1-fea7-4f08-bdcb-4245b157f763","html_url":"https://github.com/null93/rsa-encryption","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/null93/rsa-encryption","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/null93%2Frsa-encryption","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/null93%2Frsa-encryption/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/null93%2Frsa-encryption/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/null93%2Frsa-encryption/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/null93","download_url":"https://codeload.github.com/null93/rsa-encryption/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/null93%2Frsa-encryption/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":273746775,"owners_count":25160646,"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","status":"online","status_checked_at":"2025-09-05T02:00:09.113Z","response_time":402,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["cryptography","rsa","rsa-encryption"],"created_at":"2024-11-08T12:47:07.624Z","updated_at":"2025-09-05T10:33:56.943Z","avatar_url":"https://github.com/null93.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# RSA Encryption\n\u003e Implementation of the RSA encryption algorithm using big-integer algebra algorithms\n\n![MIT License](https://img.shields.io/badge/License-MIT-lightgrey.svg?style=for-the-badge)\n![Version 1.0.0](https://img.shields.io/badge/Version-1.0.0-lightgrey.svg?style=for-the-badge)\n\n\u003cp align=\"center\" \u003e\n\t\u003cimg src=\"docs/images/1.png\" width=\"600\" /\u003e\n\u003c/p\u003e\n\n## About\n\nThis program implements **RSA** key encryption and decryption.  There is a file called [src/resources/primes.rsc](src/resources/primes.rsc) that contains a list of large prime numbers.  These primes are used to generate private and public keys.  When the program starts, you can either load in an already generated key pair, or you can create new ones.  The new keys will be in a folder called *output* in the project directory.  Inside there is a file heiarchy that will represent a when a key was generated through the use of a timestamped folder.  Inside said folders, there are public and private keys in XML format.  When a key is generated, it is important to note that only one key can be loaded at a time, hence you can only encrypt or decrypt if you loaded the appropriate key.  The public key allows for encryption, while the private key allows for decryption.\n\n## Building \u0026 Running \u0026 Cleaning\n\nThis project uses Maven as it's build system. If you would like to build and run the application from source, then the following commands will prove useful.\n\n#### Compile Classes \u0026 Package JAR\n\n```shell\nmvn package\n```\n\n#### Run Main Class From JAR\n\n```shell\njava -cp target/rsa_encryption-1.0.0.jar com.rsa_encryption.RSA\n```\n\n#### Clean Generated Files\n\n\u003e This will not delete the output folder that contain your generated key pairs.\n\n```shell\nmvn clean\n```\n\n## Encryption \u0026 Decrytion Steps\n\n###### 1. Run the program\n\n\u003cp align=\"center\" \u003e\n\t\u003cimg src=\"docs/images/1.png\" width=\"400\" /\u003e\n\u003c/p\u003e\n\n###### 2. Click *Create*, public key will be loaded\n\n\u003cp align=\"center\" \u003e\n\t\u003cimg src=\"docs/images/2.png\" width=\"400\" /\u003e\n\u003c/p\u003e\n\n###### 3. Click *Open*, and select file to encrypt\n\n\u003cp align=\"center\" \u003e\n\t\u003cimg src=\"docs/images/3.png\" width=\"400\" /\u003e\n\u003c/p\u003e\n\n###### 4. Click *Block*\n\n\u003cp align=\"center\" \u003e\n\t\u003cimg src=\"docs/images/4.png\" width=\"400\" /\u003e\n\u003c/p\u003e\n\n###### 5. Click *Encrypt*, and your file will be encrypted\n\n\u003cp align=\"center\" \u003e\n\t\u003cimg src=\"docs/images/5.png\" width=\"400\" /\u003e\n\u003c/p\u003e\n\n###### 6. To decrypt, click *Load*, navigate to generated private key in *output* directory\n\n\u003cp align=\"center\" \u003e\n\t\u003cimg src=\"docs/images/6.png\" width=\"400\" /\u003e\n\u003c/p\u003e\n\n###### 7. Click *Decrypt*\n\n\u003cp align=\"center\" \u003e\n\t\u003cimg src=\"docs/images/7.png\" width=\"400\" /\u003e\n\u003c/p\u003e\n\n###### 8. Click *Unblock*, and your original file will be in it's original state\n\n\u003cp align=\"center\" \u003e\n\t\u003cimg src=\"docs/images/8.png\" width=\"400\" /\u003e\n\u003c/p\u003e\n\n## Additional Notes\n\n- http://doctrina.org/How-RSA-Works-With-Examples.html\n\n\u003e This source was used to better understand how RSA encryption works and how the key generation process works.\n\n- http://www.tutorialspoint.com/java_xml/java_dom_create_document.htm\n\n\u003e This source was used to learn how to parse and write XML files in the Java language.\n\n- https://www.khanacademy.org/computing/computer-science/cryptography/modarithmetic/a/fast-modular-exponentiation\n\n\u003e This source was used to better explain how to expand a exponential operation using the Eclidean explansion algorithm.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnull93%2Frsa-encryption","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnull93%2Frsa-encryption","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnull93%2Frsa-encryption/lists"}