https://github.com/majormilk/filelocker-an-encrypt-decrypt-cli-program
Uses AES-256 to encrypt and dectrypt files and directories, uses BCrypt for password Hashing
https://github.com/majormilk/filelocker-an-encrypt-decrypt-cli-program
cli csharp decryption dotnet encryption filelocker security security-tools
Last synced: 3 months ago
JSON representation
Uses AES-256 to encrypt and dectrypt files and directories, uses BCrypt for password Hashing
- Host: GitHub
- URL: https://github.com/majormilk/filelocker-an-encrypt-decrypt-cli-program
- Owner: MajorMilk
- License: mit
- Created: 2023-10-22T19:22:14.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2023-10-22T19:41:16.000Z (over 2 years ago)
- Last Synced: 2025-12-27T05:57:09.910Z (7 months ago)
- Topics: cli, csharp, decryption, dotnet, encryption, filelocker, security, security-tools
- Language: C#
- Homepage:
- Size: 12.7 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# FileLocker An Encrypt/Decrypt CLI Program
Uses AES-256 to encrypt and decrypt files and directories, and uses BCrypt for password Hashing.
## Requirements
Uses Newtonsoft.Json for storing data
BCrypt.Net for hashing passwords
and CommandLineParser for accepting command line arguments.
## Info
The JSON for the SaltDB is encrypted using a password set at the time of the first run, to reset the password, simply delete DBHash.edb and SaltDB.edb, Keep in mind you'll no longer be able to decrypt the SaltDB after this, that's why you should just delete it after resetting the password.
There is only one unencrypted hash for the whole program and that is for the SaltDB's hash, there's also salt for generating the Key and IV for the SaltDB's decryption that is unencrypted, for this reason your password for the SaltDB should be secure, although there is no enforcement on that.
Key and IV generation is done through the Rfc2898DeriveBytes class with the SHA-256 Hash Algorithm.
The SaltService is simply a dictionary that links a filename's (without extension) hash to a tuple that stores file info, encryption salt, and a hash for the password used for encryption. This data is all encrypted.
After a file is unencrypted, it is removed from the SaltService, the same goes for a directory.
## Arguments
-f or --file : this tells the program that it will be working with a single file
-d or --dir : this tells the program that it will be working with a whole directory.
-e or --encrypt : this tells the program to encrypt the file or dir
-u or --unencrypt : this tell the program to unencrypt the file or dir
-i or --input : This is the main input for the program, it should be the path of the file or directory in question. example: C:\TestFolder or C:\TestFolder\TestFile.txt