Welcome to CipherShield, a security based console application developed in C# using Visual Studio. This application allows users to generate passwords according to their requirement, assess the strength of their password, encrypt and decrypt passwords/texts using different encryption algorithms and finally hash their passwords/texts using different hashing algorithms that have been implemented from scratch.
CipherShield was created out of our passion for CyberSecurity and Cryptogrphic functions. We wanted to learn about Password salting and implement various Encryption and Hashing algorithms from scratch following the OOP concepts and SOLID principles. This project can serve as an educational tool to help users understand password security best practices.
To run the Project-CipherShiled on your local machine, follow these steps:
-
Ensure you have Git installed. If not, download and install it from https://git-scm.com/downloads.
-
Clone the GitHub repository to your local machine.
git clone https://github.com/saadmansakib47/Project-CipherShield-.git
-
Navigate to the project directory.
cd Project-CipherShield-
-
Install the project dependencies.
nuget restore
Note: Make sure you have NuGet installed. The nuget restore command fetches the necessary dependencies for the project.
-
Make sure you have Visual Studio installed, if not then install it from https://visualstudio.microsoft.com/downloads/
-
Open Visual Studio. In Visual Studio, click on File > Open > Project/Solution
-
Navigate to the directory where you cloned the Project-CipherShield- repository, select the solution file (.sln), and click Open.
-
Once the project is open in Visual Studio, locate the Run button (usually a green play button) in the toolbar or press F5 to build and run the application.
Choose one of the 3 main features of our project-
Generates password based on user inputs such as if the user wants to include uppercase or lowercase characters, numbers, special symbols and the length of the password etc.
Checks the strenth of the password that the user inputs and shows 4 types of feedback which are:
- Randomness
- Pattern Detection
- Repetition
- Length
It also shows an overall strenth score and strenth feedback which is calculated based on the above 4 metrics.
Encrypts and Decrypts the text/password that the user inputs using common encryption algorithms.
- Encrypt: Users have to input a message along with a key
- Decrypt: Users have to input the encrypted text along with the key
- Encrypt: Users have to input a message(in capital form) along with the number of rails
- Decrypt: Users have to input the encrypted text along with the number of rails
- Encrypt: Users have to input a 16 character key in hexadecimal format along with the message
- Decrypt: Users have to input the 16 character key in hexadecimal format along with the encrypted text
- Encrypt: The program generates a private key
(d, n)
and a public key(e, n)
. The user have to input the message and gets the ciphertext back based on those keys.
- Decrypt: Users have to input the public exponent
(e)
, private exponent(d)
, modulus(n)
and the ciphertext to get the original message back.
Hashes the text/password that the user inputs using common hashing algorithms.
- The user enters a palintext and gets the hashed message back.
This project was developed by us for the Software Project Lab 1 (SWE 4301) during the 3rd semester at the Islamic University of Technology(IUT).