{"id":22503176,"url":"https://github.com/afa-farkhod/image-encryption-decryption-application","last_synced_at":"2026-04-16T02:31:54.144Z","repository":{"id":175161424,"uuid":"653439425","full_name":"afa-farkhod/Image-Encryption-Decryption-Application","owner":"afa-farkhod","description":"Application provides a user-friendly interface for encrypting and decrypting image files using AES algorithm","archived":false,"fork":false,"pushed_at":"2023-07-02T01:00:46.000Z","size":183,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-03-30T05:41:07.533Z","etag":null,"topics":["aes-encryption","algorithm","java","javafx","javafx-application"],"latest_commit_sha":null,"homepage":"https://en.wikipedia.org/wiki/Advanced_Encryption_Standard","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/afa-farkhod.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}},"created_at":"2023-06-14T04:02:39.000Z","updated_at":"2024-04-03T18:29:50.000Z","dependencies_parsed_at":"2023-10-03T17:11:23.619Z","dependency_job_id":"6406f124-a169-47e8-8b58-d7fd748f47fe","html_url":"https://github.com/afa-farkhod/Image-Encryption-Decryption-Application","commit_stats":null,"previous_names":["af4092/image-encryption-decryption-application","afa-farkhod/image-encryption-decryption-application"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/afa-farkhod/Image-Encryption-Decryption-Application","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/afa-farkhod%2FImage-Encryption-Decryption-Application","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/afa-farkhod%2FImage-Encryption-Decryption-Application/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/afa-farkhod%2FImage-Encryption-Decryption-Application/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/afa-farkhod%2FImage-Encryption-Decryption-Application/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/afa-farkhod","download_url":"https://codeload.github.com/afa-farkhod/Image-Encryption-Decryption-Application/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/afa-farkhod%2FImage-Encryption-Decryption-Application/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31868493,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-15T15:24:51.572Z","status":"online","status_checked_at":"2026-04-16T02:00:06.042Z","response_time":69,"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":["aes-encryption","algorithm","java","javafx","javafx-application"],"created_at":"2024-12-06T23:29:59.726Z","updated_at":"2026-04-16T02:31:54.119Z","avatar_url":"https://github.com/afa-farkhod.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Image-Encryption-Decryption-Application\nApplication provides a user-friendly interface for encrypting and decrypting image files using AES algorithm\n\n- [Advanced Encryption Standard](https://www.tutorialspoint.com/cryptography/advanced_encryption_standard.htm) - AES (Advanced Encryption Standard) is a widely used symmetric encryption algorithm that provides secure and efficient data encryption and decryption.\n- AES operates on blocks of data, where each block is 128 bits (16 bytes) in size. It supports three key lengths: 128-bit, 192-bit, and 256-bit. The algorithm consists of several rounds of substitution, permutation, and mixing operations, making it highly resistant to cryptographic attacks.\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://github.com/af4092/Image-Encryption-Decryption-Application/assets/24220136/a6a21911-d0b3-4585-9dce-39d7262dcbd3\" alt=\"Image\"\u003e\n\u003c/p\u003e\n\n- The basic steps of the AES algorithm are as follows:\n     - Key Expansion: Generates a set of round keys from the original encryption key.\n     - Initial Round: XORs the input data with the first round key.\n     - Rounds: Consists of multiple rounds (9, 11, or 13 rounds depending on the key length). Each round applies a series of transformations to the data, including byte substitution, row shifting, column mixing, and XORing with a round key.\n     - Final Round: Performs the last round of transformations without the column mixing step.\n     - Output: The final encrypted (or decrypted) data is obtained.\n- AES is known for its strong security, efficiency, and versatility. It is widely used in various applications, including secure communication, data storage, and cryptographic protocols.\n- Encryption Process\n     - Here, we restrict to description of a typical round of AES encryption. Each round comprise of four sub-processes. The first round process is depicted below\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://github.com/af4092/Image-Encryption-Decryption-Application/assets/24220136/293c46de-2198-44d1-9272-355be1bc2459\" alt=\"Image\"\u003e\n\u003c/p\u003e\n\n---------------------------------\n\n## [Implementation](https://github.com/af4092/Image-Encryption-Decryption-Application/tree/main/encryptANDdecrypt/src/main/java/com/example/encryptanddecrypt)\n\n- This sample code represents an Encryption and Decryption application that allows users to encrypt and decrypt image files using the AES encryption algorithm. The application has a graphical user interface (GUI) built using JavaFX.\n- The main functionalities of the application include:\n- Encryption:\n    - When the user clicks the \"Encrypt Doc\" button, a file selection dialog is displayed for the user to choose an image file.\n    - After selecting the file, a dialog prompts the user to enter an encryption key.\n    - The entered key is validated and padded if necessary to match the required key length for AES (128 bits).\n    - The selected file is read, and its contents are encrypted using the encryption key and the AES algorithm.\n    - The encrypted image is saved to a new file named \"encrypted_\" followed by the original file name.\n    - The encrypted image is then displayed in a separate window.\n- Decryption:\n    - When the user clicks the \"Decrypt Doc\" button, a dialog is displayed to enter the decryption key.\n    - The entered key is validated and padded if necessary to match the required key length for AES.\n    - The selected encrypted image file is read.\n    - The encrypted data is decrypted using the decryption key and the AES algorithm.\n    - The decrypted data is saved to a new file named \"decrypted_\" followed by the original file name.\n    - The decrypted image is then displayed in a separate window.\n- GUI:\n    - The GUI consists of a main window with two buttons: \"Encrypt Doc\" and \"Decrypt Doc\".\n    - When a user drags and drops an image file onto the main window, the file is selected, and its image is displayed.\n    - The selected file is stored in the selectedFile variable for later encryption or decryption.\n    - Overall, this application provides a user-friendly interface for encrypting and decrypting image files using AES encryption.\n\n- Main window:\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://github.com/af4092/Image-Encryption-Decryption-Application/assets/24220136/577b2e05-a9dd-4221-9760-45ba36a25a4e\" alt=\"Image\"\u003e\n\u003c/p\u003e\n\n- After Drag \u0026 Dropping the sample image we press the `Encrypt Doc` button\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://github.com/af4092/Image-Encryption-Decryption-Application/assets/24220136/a0ba1833-33b7-4f6c-afaf-1c48fe6d2d73\" alt=\"Image\"\u003e\n\u003c/p\u003e\n\n- After that `Encryption Key` window appears, and asks to enter Key:\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://github.com/af4092/Image-Encryption-Decryption-Application/assets/24220136/4c662832-e903-4add-b4ef-7c14f18e1fa3\" alt=\"Image\"\u003e\n\u003c/p\u003e\n\n- To enter the key, we run another Java Api to randomly generate key `RandomKeyGenerator`\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://github.com/af4092/Image-Encryption-Decryption-Application/assets/24220136/edafc24f-751c-4d39-aa5f-92081f67f5bb\" alt=\"Image\"\u003e\n\u003c/p\u003e\n\n- Then we Copy Paste the Randomly generate key then press Ok:\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://github.com/af4092/Image-Encryption-Decryption-Application/assets/24220136/a3d00842-3d50-47b0-b360-c1b3f8635796\" alt=\"Image\"\u003e\n\u003c/p\u003e\n\n- Then encrypted image appears in the project's directory with the following name `encrypted_Capture.JPG`\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://github.com/af4092/Image-Encryption-Decryption-Application/assets/24220136/96dc7452-fba3-4301-8c72-1bc028eebe83\" alt=\"Image\"\u003e\n\u003c/p\u003e\n\n- To decrypt the image, we Drag \u0026 Drop the encrypted image file to the Main window and press the `Decrypt Doc` button, then it asks for `Decryption Key`, as we are using Symmetric Key , we decrypt the image with the same key as the encrpytion key:\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://github.com/af4092/Image-Encryption-Decryption-Application/assets/24220136/482c63fc-5254-479a-a542-b6f32614ea42\" alt=\"Image\"\u003e\n\u003c/p\u003e\n\n- And now decrypted image again appears in the project directory with the name `decrypted_encrypted_Capture.JPG`\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://github.com/af4092/Image-Encryption-Decryption-Application/assets/24220136/53139618-27d3-4991-8510-734be9a2cf91\" alt=\"Image\"\u003e\n\u003c/p\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fafa-farkhod%2Fimage-encryption-decryption-application","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fafa-farkhod%2Fimage-encryption-decryption-application","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fafa-farkhod%2Fimage-encryption-decryption-application/lists"}