{"id":26351708,"url":"https://github.com/ornella-gigante/cryptosafe","last_synced_at":"2026-02-13T11:16:29.799Z","repository":{"id":267104121,"uuid":"862283379","full_name":"Ornella-Gigante/CryptoSafe","owner":"Ornella-Gigante","description":"A simple Java application for encrypting and decrypting messages and files using DES and RSA algorithms, featuring a user-friendly menu interface. Perfect for learning about cryptography and secure file handling.","archived":false,"fork":false,"pushed_at":"2024-09-26T16:05:04.000Z","size":8081,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-06-20T04:41:22.568Z","etag":null,"topics":["assymetric-encryption","assymetric-key-cryptography","asymmetric-cryptography","cipher-algorithms","cryptography","decipher","des","java","java-8","rsa-cryptography"],"latest_commit_sha":null,"homepage":"","language":"HTML","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/Ornella-Gigante.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-09-24T10:47:31.000Z","updated_at":"2025-03-03T22:55:08.000Z","dependencies_parsed_at":null,"dependency_job_id":"16f8a16e-3a3f-4e0f-a35a-6f90ee4a3378","html_url":"https://github.com/Ornella-Gigante/CryptoSafe","commit_stats":null,"previous_names":["ornella-gigante/cryptosafe"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Ornella-Gigante/CryptoSafe","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ornella-Gigante%2FCryptoSafe","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ornella-Gigante%2FCryptoSafe/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ornella-Gigante%2FCryptoSafe/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ornella-Gigante%2FCryptoSafe/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Ornella-Gigante","download_url":"https://codeload.github.com/Ornella-Gigante/CryptoSafe/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ornella-Gigante%2FCryptoSafe/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":262047822,"owners_count":23250421,"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":["assymetric-encryption","assymetric-key-cryptography","asymmetric-cryptography","cipher-algorithms","cryptography","decipher","des","java","java-8","rsa-cryptography"],"created_at":"2025-03-16T10:34:00.360Z","updated_at":"2026-02-13T11:16:24.762Z","avatar_url":"https://github.com/Ornella-Gigante.png","language":"HTML","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 🔒 CryptoSafe: A Secure Encryption Tool 🔒\n\n## CryptoSafe is a simple Java application designed for encrypting and decrypting messages and files using the DES and RSA algorithms. This project aims to provide a user-friendly menu interface to make cryptographic operations accessible for educational purposes and secure file handling.\n\n### 🚀 Features\n\n    Message Encryption/Decryption: Easily cipher and decipher text messages.\n    File Encryption/Decryption: Securely encrypt and decrypt files with a simple command.\n    Asymmetric Encryption: Use RSA for enhanced security.\n    Key Generation: Generate secure keys for DES encryption.\n    \n### 📖 Table of Contents\n\n    Installation\n    Usage\n    Classes Overview\n    Flowchart\n    Contributing\n    License\n    \n# 🛠️ Installation\n\n\n    Clone the repository:\n\n    git clone https://github.com/Ornella-Gigante/CryptoSafe.git\n    cd CryptoSafe\n    Compile the project: Make sure you have Java Development Kit (JDK) installed. Then compile the project using:\n    \n    javac -d bin src/com/mycompany/cryptosafe/*.java\n    Run the application:\n    \n    java -cp bin com.mycompany.cryptosafe.EncryptionMenu\n\n\n\n### 📝 Usage\n\n    Select an option from the menu:\n    \n    Cipher a message\n    Decipher a message\n    File Encryption (DES)\n    File Decryption (DES)\n    Asymmetric Encryption (RSA)\n    Exit\n    Follow the prompts for inputting text, files, and keys.\n\n\n### 📚 Classes Overview\n    \n    \n    1. EncryptionMenu\n    Purpose: Provides a menu-driven interface for users to select different encryption options.\n    Key Functions:\n    Display options for message and file encryption/decryption.\n    Handle user input and call the appropriate methods for encryption tasks.\n    2. CipherDecipher\n    Purpose: Contains methods for ciphering and deciphering text messages.\n    Key Functions:\n    cipher(String text, int key): Encrypts the input text using a numeric key.\n    decipher(String text, int key): Decrypts the input text using the same numeric key.\n    3. FileEncryptionDES\n    Purpose: Handles file encryption and decryption using the DES algorithm.\n    Key Functions:\n    cipherFile(String inputFile, String outputFile, SecretKey key): Encrypts the specified file and saves the result.\n    decipherFile(String inputFile, SecretKey key): Decrypts the specified file using the given key.\n    4. DESKeyGenerator\n    Purpose: Generates secure DES keys for file encryption.\n    Key Functions:\n    generateDESKey(): Creates and returns a new DES key.\n    5. AsymmetricEncryption\n    Purpose: Provides methods for asymmetric encryption using RSA.\n\n    \n### Key Functions:\n\n\n    Contains functionality for generating RSA keys and encrypting/decrypting messages.\n\n### 🔄 Flowchart\n    \n                                            +-------------------------+\n                                            |      Start Program      |\n                                            +-------------------------+\n                                                        |\n                                                        v\n                                            +-------------------------+\n                                            |    Display Main Menu    |\n                                            +-------------------------+\n                                            |  1. Cipher message      |\n                                            |  2. Decipher message    |\n                                            |  3. File Encryption (DES)|\n                                            |  4. File Decryption (DES)|\n                                            |  5. Asymmetric Encryption|\n                                            |  6. Exit                |\n                                            +-------------------------+\n                                                        |\n                                                        v\n                                            +--------------------------+\n                                            | User selects an option   |\n                                            +--------------------------+\n                                                        |\n                                                        v\n                                            +-------------------------+\n                                            |  Option 1: Cipher a     |\n                                            |       message           |\n                                            +-------------------------+\n                                                        |\n                                                        v\n                                            +-------------------------+\n                                            | Input text to cipher    |\n                                            +-------------------------+\n                                                        |\n                                                        v\n                                            +-------------------------+\n                                            | Input numeric key       |\n                                            +-------------------------+\n                                                        |\n                                                        v\n                                            +------------------------------+\n                                            | Call CipherDecipher.cipher() |\n                                            +------------------------------+\n                                                        |\n                                                        v\n                                            +-------------------------+\n                                            | Display ciphered text   |\n                                            +-------------------------+\n                                                        |\n                                                        v\n                                            +-------------------------+\n                                            |     Return to Main Menu |\n                                            +-------------------------+\n                                            \n                                                        |\n                                                        v\n                                            +-------------------------+\n                                            |  Option 2: Decipher a   |\n                                            |       message           |\n                                            +-------------------------+\n                                                        |\n                                                        v\n                                            +-------------------------+\n                                            | Input text to decipher   |\n                                            +-------------------------+\n                                                        |\n                                                        v\n                                            +-------------------------+\n                                            | Input numeric key        |\n                                            +-------------------------+\n                                                        |\n                                                        v\n                                            +-------------------------------+\n                                            | Call CipherDecipher.decipher()|\n                                            +-------------------------------+\n                                                        |\n                                                        v\n                                            +-------------------------+\n                                            | Display deciphered text  |\n                                            +-------------------------+\n                                                        |\n                                                        v\n                                            +-------------------------+\n                                            |     Return to Main Menu  |\n                                            +-------------------------+\n                                            \n                                                        |\n                                                        v\n                                            +-------------------------+\n                                            | Option 3: File          |\n                                            | Encryption (DES)        |\n                                            +-------------------------+\n                                                        |\n                                                        v\n                                            +-------------------------+\n                                            | Input name of file to   |\n                                            | encrypt                 |\n                                            +-------------------------+\n                                                        |\n                                                        v\n                                            +---------------------------------+\n                                            | Generate DES key using          |\n                                            | DESKeyGenerator.generateDESKey()|\n                                            +---------------------------------+\n                                                        |\n                                                        v\n                                            +------------------------------------+\n                                            | Call FileEncryptionDES.cipherFile()|\n                                            +----------------------...........---+\n                                                        |\n                                                        v\n                                            +-------------------------+\n                                            | Display success message  |\n                                            +-------------------------+\n                                                        |\n                                                        v\n                                            +-------------------------+\n                                            |     Return to Main Menu  |\n                                            +-------------------------+\n                                            \n                                                        |\n                                                        v\n                                            +-------------------------+\n                                            | Option 4: File          |\n                                            | Decryption (DES)        |\n                                            +-------------------------+\n                                                        |\n                                                        v\n                                            +-------------------------+\n                                            | Input name of file to   |\n                                            | decrypt                 |\n                                            +-------------------------+\n                                                        |\n                                                        v\n                                            +-------------------------+\n                                            | Input DES key for       |\n                                            | decryption (original key) |\n                                            +-------------------------+\n                                                        |\n                                                        v\n                                            +--------------------------------------+\n                                            | Call FileEncryptionDES.decipherFile()|\n                                            +--------------------------------------+\n                                                        |\n                                                        v\n                                            +-------------------------+\n                                            | Display success message  |\n                                            +-------------------------+\n                                                        |\n                                                        v\n                                            +-------------------------+\n                                            |     Return to Main Menu  |\n                                            +-------------------------+\n                                            \n                                                        |\n                                                        v\n                                            +-------------------------+\n                                            | Option 5: Asymmetric    |\n                                            | Encryption (RSA)        |\n                                            +-------------------------+\n                                                        |\n                                                        v\n                                            +----------------------------------+\n                                            | Call AsymmetricEncryption.main() |\n                                            +----------------------------------+\n                                                        |\n                                                        v\n                                            +-------------------------+\n                                            |     Return to Main Menu  |\n                                            +-------------------------+\n                                            \n                                                        |\n                                                        v\n                                            +-------------------------+\n                                            | Option 6: Exit          |\n                                            +-------------------------+\n                                                        |\n                                                        v\n                                            +-------------------------+\n                                            |     Close Program       |\n                                            +-------------------------+\n                                            \n\n\n### 🤝 Contributing\n### Contributions are welcome! Please feel free to submit issues or pull requests.\n\n    Steps to contribute:\n    Fork the repository.\n    Create your feature branch: git checkout -b feature/YourFeature\n    Commit your changes: git commit -m 'Add some feature'\n    Push to the branch: git push origin feature/YourFeature\n    Open a Pull Request.\n\n    \n### 📄 License\n### This project is licensed under the MIT License - see the LICENSE file for details.\n\n\n### 📫 Contact\n\n    For any questions or suggestions, feel free to reach out to me:\n    \n    LinkedIn: https://www.linkedin.com/in/ornella-gigante/\n    Email: ornella-gigante@hotmail.com.ar\n\n\n### 📽️ Demo \n\n[Demo](https://github.com/Ornella-Gigante/CryptoSafe/blob/main/CRYTOFUN.mkv)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fornella-gigante%2Fcryptosafe","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fornella-gigante%2Fcryptosafe","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fornella-gigante%2Fcryptosafe/lists"}