{"id":29682061,"url":"https://github.com/luhluh-17/kubli","last_synced_at":"2025-07-23T02:07:14.719Z","repository":{"id":302059971,"uuid":"1011018287","full_name":"luhluh-17/kubli","owner":"luhluh-17","description":"A Python-based file encryption tool that securely encrypts and decrypts files and directories using Fernet symmetric encryption. Features filename obfuscation, interactive CLI interface, and batch processing capabilities.","archived":false,"fork":false,"pushed_at":"2025-06-30T10:22:08.000Z","size":128,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-06-30T11:25:06.166Z","etag":null,"topics":["cryptography","python"],"latest_commit_sha":null,"homepage":"","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/luhluh-17.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,"zenodo":null}},"created_at":"2025-06-30T07:20:52.000Z","updated_at":"2025-06-30T10:22:11.000Z","dependencies_parsed_at":"2025-06-30T11:35:51.150Z","dependency_job_id":null,"html_url":"https://github.com/luhluh-17/kubli","commit_stats":null,"previous_names":["luhluh-17/kubli"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/luhluh-17/kubli","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/luhluh-17%2Fkubli","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/luhluh-17%2Fkubli/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/luhluh-17%2Fkubli/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/luhluh-17%2Fkubli/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/luhluh-17","download_url":"https://codeload.github.com/luhluh-17/kubli/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/luhluh-17%2Fkubli/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":266604009,"owners_count":23954725,"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-07-23T02:00:09.312Z","response_time":66,"last_error":null,"robots_txt_status":null,"robots_txt_updated_at":null,"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","python"],"created_at":"2025-07-23T02:07:13.978Z","updated_at":"2025-07-23T02:07:14.702Z","avatar_url":"https://github.com/luhluh-17.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Kubli - File Encryption Tool\n\n**Kubli** (Tagalog for \"hidden\", \"concealed\", or \"secret\") is a Python-based file encryption tool\nthat provides secure encryption and decryption of files and directories using Fernet symmetric\nencryption.\n\n## Example\n\n![kubli](https://github.com/user-attachments/assets/5221b06e-7b8e-4dbf-823c-e7e316144d80)\n\n## Features\n\n- **Directory-wide encryption/decryption** - Process multiple files at once\n- **Filename encryption** - Both file content and filenames are encrypted\n- **Interactive interface** - User-friendly command-line menu system\n- **Password-based encryption** - Uses SHA-256 derived keys from user passwords\n- **Preview functionality** - Shows encrypted/decrypted filename mappings before processing\n- **Optional file deletion** - Choose to delete original files after encryption/decryption\n\n## Installation\n\n### Prerequisites\n\n- Python 3.6 or higher\n- pip package manager\n\n### Dependencies\n\nInstall required packages:\n\n```bash\npip install cryptography colorama\n```\n\n### Download\n\nClone the repository or download the script:\n\n```bash\ngit clone https://github.com/luhluh-17/kubli.git\ncd kubli\n```\n\n## Usage\n\nRun the application:\n\n```bash\npython kubli.py\n```\n\n### Main Menu Options\n\n1. **Encrypt** - Encrypt files in a directory\n2. **Decrypt** - Decrypt .kubli files in a directory\n3. **Exit** - Close the application\n\n### Encryption Process\n\n1. Enter your encryption password\n2. Specify directory path (or press Enter for current directory)\n3. Review the list of files to be encrypted\n4. Confirm to proceed with encryption\n5. Choose whether to delete original files after encryption\n\n### Decryption Process\n\n1. Enter your decryption password\n2. Specify directory path (or press Enter for current directory)\n3. Review encrypted files with their decrypted filename previews\n4. Confirm to proceed with decryption\n5. Choose whether to delete encrypted files after decryption\n\n## File Filtering\n\n### Encryption\n\n- Excludes files with `.kubli` extension (already encrypted)\n- Excludes the kubli.py script itself\n- Only processes regular files (not directories)\n\n### Decryption\n\n- Only processes files with `.kubli` extension\n- Attempts to decrypt filenames for preview display\n\n## Security Features\n\n- **Fernet encryption** - Uses cryptographically secure symmetric encryption\n- **SHA-256 key derivation** - Passwords are hashed using SHA-256\n- **Filename obfuscation** - Both content and filenames are encrypted\n- **Base64 encoding** - Encrypted filenames use filesystem-safe encoding\n\n## File Structure\n\n```\noriginal_file.txt → [encrypted_content].kubli\n```\n\nEncrypted files:\n\n- Have `.kubli` extension\n- Contain encrypted file content\n- Have encrypted filenames that are base64 encoded\n\n## Sample Files\n\nThe `sample/` folder contains encrypted files that you can use to test the decryption functionality:\n\n### Decrypting Sample Files\n\nTo decrypt the sample files:\n\n1. Run the application: `python kubli.py`\n2. Select option **2** (Decrypt)\n3. Enter the password: `xaltius_academy`\n4. Enter the directory path: `sample` (or the full path to the sample folder)\n5. Review the encrypted files and their decrypted filename previews\n6. Confirm to proceed with decryption\n7. Choose whether to delete the encrypted files after decryption\n\nThe sample files will be decrypted and you can see the original content and filenames.\n\n### Encrypting Sample Files\n\nTo test encryption using the same password:\n\n1. Run the application: `python kubli.py`\n2. Select option **1** (Encrypt)\n3. Enter any password or use the original password: `xaltius_academy`\n4. Enter the directory path containing files you want to encrypt\n5. Review the list of files to be encrypted\n6. Confirm to proceed with encryption\n7. Choose whether to delete original files after encryption\n\nThis will create `.kubli` files that can later be decrypted using the same password.\n\n## Error Handling\n\nThe application includes comprehensive error handling for:\n\n- Invalid directory paths\n- Empty passwords\n- File access permissions\n- Encryption/decryption failures\n- File deletion errors\n\n## Contributing\n\nContributions are welcome! Please feel free to submit pull requests or open issues on GitHub.\n\n## License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n\n---\n\n**⚠️ Important Security Notice**: Always backup your files before encryption and remember your\npasswords. There is no password recovery mechanism - lost passwords mean permanently lost access to\nyour encrypted files.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fluhluh-17%2Fkubli","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fluhluh-17%2Fkubli","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fluhluh-17%2Fkubli/lists"}