CSD356 Foundation of Information Security
Programming Assignment
(Implementing a Password Manager and Usage of HASHCAT)
Date-06/02/25 Submission Due-30/03/25, 11:59 PM
1 Implementing a Password Manager [40 marks]
1.1 Introduction
In today’s digital age, users manage numerous online accounts, each requiring a unique and strong
password to ensure security. However, remembering multiple complex passwords can be challeng-
ing. This has led to the development of password managers, which securely store and retrieve
passwords while enforcing best security practices.
This assignment focuses on designing and implementing a secure password manager that
protects stored passwords using Advanced Encryption Standard (AES). The system will use
a master password for key generation/authentication. The manager will help users to store,
retrieve, and generate strong passwords. If the user decides to select all the passwords by
him/herself, then it will include an optional password strength checker to encourage users to
create robust passwords.
1.2 Objective
This assignment aims to design and implement a password manager that ensures the security of
stored passwords by using encryption techniques.
1.3 Technical Requirements
The password manager should include the following features:
• AES Encryption: Encrypt the password vault.
• Master Password: Implement a master password for key generation/authentication and
access control.
• Password Management: Allow users to store, retrieve, and generate strong passwords.
• Password Strength Checking (Optional): Implement an optional password strength
checker to help users choose secure passwords.
1.4 Submission Requirements
Students should submit:
• Well-documented source code with comments explaining each function.
• A short report (1-2 pages) describing the encryption technique, design choices, and security
considerations.
• Example usage and test cases demonstrating the password manager in action.
• Bonus: If you design the User Interface to show the real-time working of the passwords
manager.
1
CSD356 Foundation of Information Security
2 Usage of HASHCAT - A Password Cracking Tool [20 marks]
2.1 Objective
In this task, you will learn password cracking using HASHCAT.
2.2 Technical Requirements
• Either use your own algorithm to create a Password Dictionary or just get a ready to use
Password Dictionary.
• Compute password hashes for all the passwords in the dictionary using the SHA-1 Algo-
rithm. Save the password hashes in a separate file.
• Use HASHCAT to recover passwords providing the hashes’ file as input.
• Compute the success rate in terms of percentage.
2.3 Submission Requirements
• Screenshot of the generated passwords specifying total number of passwords entries in the file
(expected numbers in some thousands or more).
• Screenshot of the hashed passwords and the file.
• Command to use HASHCAT for cracking the passwords from provided passwords’ hash file.
• Success rate with screenshot.