{"id":23297293,"url":"https://github.com/veliscore/diec","last_synced_at":"2025-06-10T13:02:36.575Z","repository":{"id":248438063,"uuid":"828689011","full_name":"VelisCore/diec","owner":"VelisCore","description":"Data Independent Encryption and Compression.","archived":false,"fork":false,"pushed_at":"2024-12-26T11:44:19.000Z","size":231,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-05-20T14:45:10.707Z","etag":null,"topics":["decoding","diec","encoding","velis","wfxey"],"latest_commit_sha":null,"homepage":"https://discord.gg/A5reDWGkhV","language":"Python","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/VelisCore.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-07-14T22:44:39.000Z","updated_at":"2025-04-13T03:16:03.000Z","dependencies_parsed_at":"2024-07-14T23:15:37.544Z","dependency_job_id":"5dbed017-53ff-4173-a8dd-48b8b327850e","html_url":"https://github.com/VelisCore/diec","commit_stats":null,"previous_names":["d-i-projects/diec","eldritchy/diec","veliscore/diec"],"tags_count":17,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/VelisCore%2Fdiec","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/VelisCore%2Fdiec/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/VelisCore%2Fdiec/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/VelisCore%2Fdiec/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/VelisCore","download_url":"https://codeload.github.com/VelisCore/diec/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/VelisCore%2Fdiec/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":259080921,"owners_count":22802393,"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":["decoding","diec","encoding","velis","wfxey"],"created_at":"2024-12-20T07:16:49.149Z","updated_at":"2025-06-10T13:02:36.385Z","avatar_url":"https://github.com/VelisCore.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n\u003cdiv align=\"center\"\u003e\n\n# **diec** 🔐\n\n[![License](https://img.shields.io/badge/License-MIT-blue)](https://github.com/VelisCore/diec#license)  [![PyPi](https://img.shields.io/badge/PyPi%20Link-FFFF00)](https://pypi.org/project/diec/)  [![Contributors](https://img.shields.io/github/contributors-anon/VelisCore/diec)](https://github.com/VelisCore/diec/graphs/contributors)  [![Downloads](https://static.pepy.tech/badge/diec)](https://pepy.tech/project/diec)\n\n**Encrypt and decrypt text securely with your own passphrase.**\n\nAn easy-to-use command-line tool for encoding and decoding sensitive data. Securely encrypt your messages into unreadable formats, then decrypt them using the same key.\n\n**Official test UI:**  \n[diec-test-gui](https://github.com/VelisCore/diec-test-gui)\n\n\u003c/div\u003e\n\n---\n\n## **📥 Installation**\n\nTo install **diec**, you can use `pip`:\n\n```bash\npip install diec\n```\n\nThis will install the latest stable version of **diec**. Ensure that you have Python 3.9 or higher installed.\n\n**Dependencies**:\n- **argon2**: For passphrase hashing and key derivation.\n- **binaryconvert**: For binary conversion utilities.\n\nIf you're using a virtual environment (recommended), make sure to activate it before running the `pip install` command.\n\n---\n\n## **🔐 Secure Your Data with diec**\n\n### **How diec Works**\n\nThe **diec** tool is designed to encrypt and decrypt text using a passphrase. When you encrypt text, **diec** converts it into an unreadable format. Later, you can use the same passphrase to decrypt it back into its original form. This makes **diec** a perfect solution for encrypting sensitive information that needs to be shared or stored securely.\n\n### **Encrypt Text**\n\nEncrypt your plain text with a passphrase to ensure it is safely stored or shared.\n\n```bash\npython -m diec encode \"This is the text to encode\" --passphrase \"your_passphrase\"\n```\n\n**Command Options**:\n- **`text`**: The plaintext message you want to encrypt.\n- **`--passphrase`**: The secret passphrase used for encryption (you will be prompted for this if not provided directly).\n- **`--output`**: (Optional) Specify the output file to save the encrypted data. By default, the encrypted data will be stored in a file named `encrypted_data.diec`.\n\nOnce encrypted, the file will contain the salted, IV-based, and encrypted data in a secure format.\n\n### **Decrypt Text**\n\nTo decrypt an encrypted file, simply use the same passphrase that was used during the encryption process.\n\n```bash\npython -m diec decode --passphrase \"your_passphrase\"\n```\n\n**Command Options**:\n- **`--passphrase`**: The passphrase used to decrypt the data.\n- **`--input`**: (Optional) Specify the input file that contains the encrypted data. By default, it looks for `encrypted_data.diec`.\n\n### **Encryption and Decryption Flow**\n\n1. **Encryption**: \n   - A salt is randomly generated and combined with the passphrase to create a secure key using **PBKDF2**.\n   - The text is encrypted with **AES-GCM** mode to ensure confidentiality, integrity, and authenticity.\n   - The encrypted data, along with the salt and initialization vector (IV), is saved to the specified file.\n\n2. **Decryption**:\n   - The encrypted file is read, and the salt and IV are extracted.\n   - The passphrase is used to regenerate the cryptographic key using **PBKDF2**.\n   - The encrypted text is then decrypted, and the original message is recovered.\n\n---\n\n## **⚙️ Command Line Usage**\n\nThe **diec** command-line interface (CLI) provides two main commands for encoding and decoding:\n\n### **`encode`**: Encrypt Text\n\nThis command is used to encrypt the provided text.\n\n```bash\npython -m diec encode \u003ctext\u003e --passphrase \u003cpassphrase\u003e --output \u003coutput_file\u003e\n```\n\n**Parameters**:\n- **`\u003ctext\u003e`**: The plaintext message you want to encrypt.\n- **`\u003cpassphrase\u003e`**: The passphrase used to secure the data.\n- **`--output`**: (Optional) Specify the output file to save the encrypted data. Defaults to `encrypted_data.diec`.\n\nExample:\n```bash\npython -m diec encode \"Sensitive information here\" --passphrase \"your_secret_passphrase\" --output \"encrypted_message.diec\"\n```\n\n### **`decode`**: Decrypt Text\n\nUse this command to decrypt the previously encrypted file.\n\n```bash\npython -m diec decode --passphrase \u003cpassphrase\u003e --input \u003cinput_file\u003e\n```\n\n**Parameters**:\n- **`\u003cpassphrase\u003e`**: The passphrase used to decrypt the data.\n- **`--input`**: (Optional) Specify the file that contains the encrypted data. Defaults to `encrypted_data.diec`.\n\nExample:\n```bash\npython -m diec decode --passphrase \"your_secret_passphrase\" --input \"encrypted_message.diec\"\n```\n\n---\n\n## **💡 Key Features**\n\n- **Strong Encryption**: Uses modern cryptography (AES-GCM and PBKDF2) for secure and reliable data protection.\n- **No Dependencies on External Services**: Everything happens locally on your machine.\n- **Customizable Output**: You can choose where to save the encrypted files, ensuring flexibility in storage.\n- **Cross-Platform Compatibility**: Works seamlessly across Linux, macOS, and Windows.\n- **Interactive Passphrase Prompt**: For added security, the passphrase is entered interactively to avoid hardcoding.\n- **Decryption Guarantee**: The decryption process ensures that the original data can always be recovered with the correct passphrase.\n\n---\n\n## **📖 Example Use Cases**\n\n### **Use Case 1: Encrypting and Sharing Sensitive Information**\n\nImagine you need to send sensitive information, like a password or secret key, to someone securely. With **diec**, you can encrypt the information into a file, and share the file along with the passphrase securely (e.g., via another communication channel). The recipient can use **diec** to decrypt the information using the same passphrase.\n\n### **Use Case 2: Storing Sensitive Data Safely**\n\nIf you need to store sensitive data locally (such as API keys, passwords, etc.), **diec** allows you to encrypt the data before saving it to a file. This ensures that even if the file is compromised, the data remains protected as long as the passphrase is kept secure.\n\n---\n\n## **🔒 License**\n\nThis project is licensed under the MIT License. See the [LICENSE](LICENSE) file for more details.\n\n---\n\n## **👨‍💻 Author**\n\n**Eldritchy**  \n[GitHub: @Velis](https://github.com/VelisCore)  \n[Email: velis.help@web.de](mailto:velis.help@web.de)\n\n---\n\n## **📦 Installation Requirements**\n\n- **Python 3.9** or higher\n- **argon2**: For secure password hashing and key derivation.\n- **binaryconvert**: For binary conversion utilities.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fveliscore%2Fdiec","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fveliscore%2Fdiec","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fveliscore%2Fdiec/lists"}