{"id":16454997,"url":"https://github.com/lucadibello/virtualsafe","last_synced_at":"2026-06-06T20:31:10.195Z","repository":{"id":111382569,"uuid":"182832355","full_name":"lucadibello/VirtualSafe","owner":"lucadibello","description":"🔒 Crypt your directories and make your files completely unreadable!","archived":false,"fork":false,"pushed_at":"2019-04-25T00:47:17.000Z","size":53,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-02-26T22:30:29.085Z","etag":null,"topics":["cryptography","fernet","privacy-tools","python","security","security-tool"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/lucadibello.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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":"2019-04-22T17:10:33.000Z","updated_at":"2021-01-17T00:50:27.000Z","dependencies_parsed_at":"2023-06-29T17:16:16.466Z","dependency_job_id":null,"html_url":"https://github.com/lucadibello/VirtualSafe","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/lucadibello/VirtualSafe","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lucadibello%2FVirtualSafe","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lucadibello%2FVirtualSafe/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lucadibello%2FVirtualSafe/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lucadibello%2FVirtualSafe/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lucadibello","download_url":"https://codeload.github.com/lucadibello/VirtualSafe/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lucadibello%2FVirtualSafe/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33999579,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-06T02:00:07.033Z","response_time":107,"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":["cryptography","fernet","privacy-tools","python","security","security-tool"],"created_at":"2024-10-11T10:20:42.578Z","updated_at":"2026-06-06T20:31:10.137Z","avatar_url":"https://github.com/lucadibello.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![Python 3.*](https://img.shields.io/badge/Python-3.*-green.svg)](https://shields.io/)\n\n# VirtualSafe\n\nWith this program you can easily protect your files by encrypting them using a 32 character key generated by the tool. This tool as well as being able to encrypt and decrypt files can do the same thing on file names, making them unreadable.\n\n## Showcase\nBefore full encrypt (data encrypt and file name encrypt):\n![Before full crypt](assets/before_full_crypt.png)\n\nAfter full encrypt (data encrypt and file name encrypt):\n![Before full crypt](assets/after_full_crypt.png)\n\n## Prerequisites\nThis program requires `python3`. It can be downloaded through the [download page](https://www.python.org/downloads/) on the official python website.\n\n\n\n## Setup\nFor an easy setup you can run `setup.py` file:\n\n``` shell\npython setup.py install\n```\n\n## Getting Started\n\n### Step 1 - Generate key\nAs I said before, this program let the user also generate the key (that will be used for encrypt/decrypt files and filenames). It can do that using this command:\n``` shell\npython virtualsafe.py --generate-key \u003cSAVE_LOCATION\u003e --security-credentials \u003cPASSWORD\u003e \u003cSALT\u003e\n```\n\nCommand example:\n``` shell\npython virtualsafe.py --generate-key \"C:\\Users\\luca6\\Desktop\\super-secure-key.txt\" --security-credentials \"password\" \"salt\"\n```\n\nThe parameter of \"--generate-key\" specify where the key will be saved after the generation, while the parameter of \"--security-credentials\" are used for generate an unique key. The length of the key it's hard-coded in the program (32 characters) so it can be modified via parameters.\n\n### Step 2 - Crypt directory\nAfter the key it's generated you can already secure your directory via encryption using this simple command:\n``` shell\npython virtualsafe.py --crypt-dir \u003cDIRECTORY_PATH\u003e \u003cKEY_PATH\u003e \n``` \n\nCommand example:\n``` shell\npython virtualsafe.py --crypt-dir \"C:\\Users\\luca6\\Desktop\\super_secret_directory\" \"C:\\Users\\luca6\\Desktop\\super-secure-key.txt\" \n``` \n\nThe parameters of \"--crypt-dir\" specify what's the directory to be secured and where is the key that will be used for the data encryption.\n\n**WARNING: Mind what directory you encrypt; if you encrypt a folder that is already encrypted all your data will be lost (can't be decrypted). This will fixed in future versions.**\n\n### Step 3 - Decrypt directory\nAfter you have encryted the file's data, them are not accessible. To make the files readable again you have to decypt the data. This using this simple command:\n``` shell\npython virtualsafe.py --decrypt-dir \u003cCRYPTED_DIRECTORY_PATH\u003e \u003cKEY_PATH\u003e \n``` \n\nCommand example:\n``` shell\npython virtualsafe.py --decrypt-dir \"C:\\Users\\luca6\\Desktop\\super_secret_directory\" \"C:\\Users\\luca6\\Desktop\\super-secure-key.txt\" \n``` \n\n**WANING: Mind what key you use for the decryption; if you use a different key to decrypt from the one you used during encryption your data will be lost. This due to security purpouses.**\n\n### Extra - Crypt/Decrypt file names\nThis is an extra features which allows you to hide file data and also their file names. This feature is only a flag so it doesn't have a dedicated command.\n\nFor encrypt the file names you have to add the flag `crypt-filename` after the `crypt-dir` command:\n``` shell\npython virtualsafe.py --crypt-dir \u003cDIRECTORY_PATH\u003e \u003cKEY_PATH\u003e --crypt-filename\n``` \n\nCommand example:\n``` shell\npython virtualsafe.py --crypt-dir \"C:\\Users\\luca6\\Desktop\\super_secret_directory\" \"C:\\Users\\luca6\\Desktop\\super-secure-key.txt\" --crypt-filename \n``` \n\nOtherwise for decrypt the file names you have to add the flag `decrypt-filename` after the `decrypt-dir` command:\n\nCommand example:\n``` shell\npython virtualsafe.py --decrypt-dir \"C:\\Users\\luca6\\Desktop\\super_secret_directory\" \"C:\\Users\\luca6\\Desktop\\super-secure-key.txt\" --decrypt-filename\n``` \n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flucadibello%2Fvirtualsafe","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flucadibello%2Fvirtualsafe","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flucadibello%2Fvirtualsafe/lists"}