{"id":22342948,"url":"https://github.com/pirate-emperor/enigma","last_synced_at":"2026-01-27T14:34:33.461Z","repository":{"id":269871897,"uuid":"882368695","full_name":"Pirate-Emperor/Enigma","owner":"Pirate-Emperor","description":"Enigma is a Java-based cryptographic system that integrates symmetric (AES, DES, Blowfish), asymmetric (Diffie-Hellman, RSA, DSA), and hashing algorithms (MD5, SHA-1, SHA-224, SHA-256, SHA-384, SHA-512). It ensures data confidentiality, integrity, and authentication with modern cryptographic standards.","archived":false,"fork":false,"pushed_at":"2024-11-02T16:45:24.000Z","size":2744,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-10-14T18:32:09.178Z","etag":null,"topics":["aes","asymmetric-algorithm","authentication","blowfish","cryptography","data-integrity","diffie-hellman","encryption","encryption-decryption","enigma","hashing","java","md5","rsa","security","sha-256","symmetric-algorithms"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Pirate-Emperor.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-11-02T16:40:42.000Z","updated_at":"2024-11-16T11:53:58.000Z","dependencies_parsed_at":"2024-12-26T20:15:34.028Z","dependency_job_id":"40c7b0bd-c19c-4b97-bd66-5864dcff1533","html_url":"https://github.com/Pirate-Emperor/Enigma","commit_stats":null,"previous_names":["pirate-emperor/enigma"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Pirate-Emperor/Enigma","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Pirate-Emperor%2FEnigma","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Pirate-Emperor%2FEnigma/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Pirate-Emperor%2FEnigma/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Pirate-Emperor%2FEnigma/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Pirate-Emperor","download_url":"https://codeload.github.com/Pirate-Emperor/Enigma/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Pirate-Emperor%2FEnigma/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28815136,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-27T12:25:15.069Z","status":"ssl_error","status_checked_at":"2026-01-27T12:25:05.297Z","response_time":168,"last_error":"SSL_read: 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":["aes","asymmetric-algorithm","authentication","blowfish","cryptography","data-integrity","diffie-hellman","encryption","encryption-decryption","enigma","hashing","java","md5","rsa","security","sha-256","symmetric-algorithms"],"created_at":"2024-12-04T08:14:12.470Z","updated_at":"2026-01-27T14:34:33.444Z","avatar_url":"https://github.com/Pirate-Emperor.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003clink rel=\"stylesheet\" type=\"text/css\" href=\"style.css\"\u003e\n\n\u003c!-- \nAuthor: Pirate-Emperor\nDate: [Insert Date]\nDescription: README file for Enigma project.\n--\u003e\n\n# Enigma\n![Enigma](docs/enigma.png)\n\n## Project Overview\n\nEnigma is a Java-based application designed to develop a secure and efficient cryptographic system. It implements various cryptographic algorithms and techniques to ensure data confidentiality, integrity, and authentication. The system incorporates modern cryptographic standards to provide robust security features.\n\n## Cryptographic Algorithms\n\n### Symmetric Algorithms\n1. **AES Encryption**: Advanced Encryption Standard for secure data encryption.\n2. **DES Encryption**: Data Encryption Standard for encrypting data.\n3. **Blowfish Encryption**: A symmetric-key block cipher designed for high performance.\n\n### Asymmetric Algorithms\n1. **Diffie-Hellman Cipher**: A method for securely exchanging cryptographic keys.\n2. **RSA Cipher**: A widely used public-key encryption algorithm.\n3. **DSA Cipher**: Digital Signature Algorithm for secure digital signatures.\n\n### Hashing Algorithms\n1. **MD5**: Message Digest Algorithm 5, a widely used hash function.\n2. **SHA-1**: Secure Hash Algorithm 1, designed for cryptographic security.\n3. **SHA-224**: A variant of SHA-2 with a 224-bit hash.\n4. **SHA-256**: Secure Hash Algorithm 256-bit, part of the SHA-2 family.\n5. **SHA-384**: SHA-2 family hash with a 384-bit output.\n6. **SHA-512**: SHA-2 family hash with a 512-bit output.\n\n## Technologies Used\n\n1. **Java**: The primary programming language for cryptographic implementations.\n2. **Gradle**: Build automation tool used for project management.\n3. **Android Studio**: Integrated development environment for Android app development.\n4. **Fragment**: Modular component for building dynamic UI in Android applications.\n5. **XML**: Markup language used for defining layout and configuration files.\n6. **Side Navigation Drawer**: Provides navigation options within the application.\n\n## Project Directory Structure\n\nHere's an overview of the project directory structure and the purpose of each file and folder:\n\n### Root Directory\n\n- **`.gradle/`**: Contains Gradle configuration files.\n- **`build/`**: Build output directory created by Gradle.\n- **`src/`**: Source code and resources directory.\n  - **`main/`**:\n    - **`java/`**:\n      - **`com/PirateEmperor/Enigma/`**:\n        - **`crypto/`**: Contains implementations of cryptographic algorithms.\n        - **`ui/`**: Contains classes for user interface components.\n        - **`utils/`**: Utility classes for various functions.\n      - **`CryptoApplication.java`**: Main application class.\n    - **`res/`**:\n      - **`layout/`**: XML layout files for the application.\n      - **`values/`**: XML files for strings, colors, and styles.\n  - **`test/`**:\n    - **`java/`**:\n      - **`com/PirateEmperor/Enigma/`**:\n        - **`crypto/`**: Tests for cryptographic algorithms.\n        - **`ui/`**: Tests for user interface components.\n        - **`utils/`**: Tests for utility functions.\n\n- **`.gitignore`**: Specifies files and directories to be ignored by Git.\n- **`build.gradle`**: Gradle build configuration file.\n- **`settings.gradle`**: Settings file for Gradle.\n- **`README.md`**: This README file.\n\n## Flow Charts\n\n### 1. Encryption Flow\n![Encryption Flow](docs/1.png)\n\n### 2. Decryption Flow\n![Decryption Flow](docs/2.png)\n\n### 3. Key Exchange Flow\n![Key Exchange Flow](docs/3.png)\n\n### 4. Hashing Flow\n![Hashing Flow](docs/4.png)\n\n## SDLC\n\nThe Software Development Life Cycle (SDLC) for Enigma includes:\n\n1. **Requirements Analysis**: Defining the requirements for secure cryptographic operations.\n2. **Design**: Creating system architecture, flowcharts, and detailed design documents for encryption and decryption processes.\n3. **Implementation**: Coding cryptographic algorithms and user interface components using Java and Gradle.\n4. **Testing**: Conducting unit and integration tests to ensure the correctness and security of the cryptographic functions.\n5. **Deployment**: Deploying the application to a development or production environment.\n6. **Maintenance**: Monitoring, bug fixing, and updating the application based on user feedback.\n\n## Highlight Testing Scripts\n\nTesting is crucial for ensuring the reliability of cryptographic functions:\n\n- **`CryptoAlgorithmTests.java`**: Validates the correctness of encryption and decryption algorithms.\n- **`HashingTests.java`**: Tests various hashing algorithms for data integrity.\n- **`KeyExchangeTests.java`**: Ensures the security and functionality of key exchange mechanisms.\n- **`UiTests.java`**: Tests user interface components and interactions.\n\nTesting ensures that all cryptographic features work as intended and meet security standards.\n\n## Skills Used\n\n- **Java**: Primary programming language for implementing cryptographic algorithms.\n- **Gradle**: Build tool for managing project dependencies and builds.\n- **Android Studio**: IDE for developing and testing Android applications.\n- **Fragment**: UI component for modular and dynamic user interfaces.\n- **XML**: Used for defining layout and configuration.\n\n## Steps to Run\n\nFollow these steps to set up and run the Enigma project:\n\n### 1. Clone the Repository\n\nClone the repository using Git:\n\n```bash\ngit clone https://github.com/Pirate-Emperor/Enigma.git\n```\n\n### 2. Set JAVA_HOME Environment Variable\n\nEnsure that the `JAVA_HOME` environment variable is set to the JDK version specified in the `build.gradle` file.\n\n- **Download JDK**: [Download JDK](https://www.oracle.com/java/technologies/javase-jdk11-downloads.html)\n- **Set JAVA_HOME**:\n\n  - **Windows**:\n    1. Open Command Prompt and set the environment variable:\n       ```bash\n       setx JAVA_HOME \"C:\\path\\to\\jdk\"\n       ```\n    2. Verify the setting:\n       ```bash\n       echo %JAVA_HOME%\n       ```\n\n  - **macOS/Linux**:\n    1. Edit your shell configuration file (`.bashrc`, `.bash_profile`, `.zshrc`, etc.) and add:\n       ```bash\n       export JAVA_HOME=/path/to/jdk\n       ```\n    2. Apply the changes:\n       ```bash\n       source ~/.bashrc\n       ```\n\n### 3. Build the Project\n\nUse Gradle to build the project:\n\n```bash\ngradle build\n```\n\n### 4. Run the Application\n\nStart the application from Android Studio or use the following command:\n\n```bash\ngradle run\n```\n\n### 5. Test the Application\n\nRun unit tests to ensure functionality:\n\n```bash\ngradle test\n```\n\n## Contributing\n\nFeel free to fork the repository, make changes, and submit pull requests. Contributions are welcome!\n\n## License\n\nThis project is licensed under the MIT License. See the [LICENSE](LICENSE) file for details.\n\n## Author\n\n**Pirate-Emperor**\n\n[![Twitter](https://skillicons.dev/icons?i=twitter)](https://twitter.com/PirateKingRahul)\n[![Discord](https://skillicons.dev/icons?i=discord)](https://discord.com/users/1200728704981143634)\n[![LinkedIn](https://skillicons.dev/icons?i=linkedin)](https://www.linkedin.com/in/piratekingrahul)\n\n[![Reddit](https://img.shields.io/badge/Reddit-FF5700?style=for-the-badge\u0026logo=reddit\u0026logoColor=white)](https://www.reddit.com/u/PirateKingRahul)\n[![Medium](https://img.shields.io/badge/Medium-42404E?style=for-the-badge\u0026logo=medium\u0026logoColor=white)](https://medium.com/@piratekingrahul)\n\n- GitHub: [Pirate-Emperor](https://github.com/Pirate-Emperor)\n- Reddit: [PirateKingRahul](https://www.reddit.com/u/PirateKingRahul/)\n- Twitter: [PirateKingRahul](https://twitter.com/PirateKingRahul)\n- Discord: [PirateKingRahul](https://discord.com/users/1200728704981143634)\n- LinkedIn: [PirateKingRahul](https://www.linkedin.com/in/piratekingrahul)\n- Skype: [Join Skype](https://join.skype.com/invite/yfjOJG3wv9Ki)\n- Medium: [PirateKingRahul](https://medium.com/@piratekingrahul)\n\nThank you for visiting the Enigma project!\n---\n\nFor more details, please refer to the [GitHub repository](https://github.com/Pirate-Emperor/Enigma).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpirate-emperor%2Fenigma","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpirate-emperor%2Fenigma","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpirate-emperor%2Fenigma/lists"}