Coding Challenge #58 - Password Manager
John Crickett
Helping you become a better software engineer by building real-world applications.
Coding Challenge #58 - Password Manager
This challenge is to build your Password Manager (i.e. something like Keepass).
Password managers let you store and manage your passwords in a secure way. All your passwords are stored in a single database that is protected with a master key. Done well this increases your level of security as you can use hundreds of unique complex passwords without having to try to remember them, storing them all in one place that is protected by the most secure encryption algorithms currently known.
Ad: Invest in your career and learn modern backend development skills with boot.dev, use the code JOHNCRICKETT you’ll get 25% off your first payment.
Ad: Practice writing complex software with codecrafters.io and get 40% off as a Coding Challenges reader.
Interested in seeing your ad here? Then check out the sponsorship page.
Coding Challenge #58 - Password Manager
This challenge is to build your Password Manager (i.e. something like Keepass).
Password managers let you store and manage your passwords in a secure way. All your passwords are stored in a single database that is protected with a master key. Done well this increases your level of security as you can use hundreds of unique complex passwords without having to try to remember them, storing them all in one place that is protected by the most secure encryption algorithms currently known.
The Challenge - Building a Password Manager
In this Coding Challenge we’re going to build a password manager that will allow you to:
领英推荐
Step Zero
Coding Challenges like the majority of common programming languages arrays is zero based, therefore we start with Step 0!
Step 0 is where you setup your IDE / editor of choice and programming language of choice. For this challenge you could build something web based like 1Password, a desktop application like Keepass or a command line tool. Or go wild and build all three - it’s your project!
Step 1
Step 1
In this step your goal is to allow a user to create a vault. When a user creates a vault they should be able to provide a name for the vault and set the master password.
You might want to ensure the name is acceptable as a filename, then you can use it as the filename when saving the vault. If you went for a CLI tool, this step might look like this:
% ccpm
Welcome to CC Password Manager
What would you like to do?
1. Create a new password vault
Quit (enter q or quit)
1
Creating a new vault
Please provide a name for the vault: cctest
Please enter a master password:
Please confirm the master password:
New vault created and saved as: cctest.ccv
What would you like to do?
1. Create a new password vault
Quit (enter q or quit)
q
Don’t forget to use a password entry field that masks passwords from prying eyes.
Continued
For the full steps please visit the build your own password manager page on the Coding Challenges website.
Software Engineer | Fullstack Developer
7 个月This looks like a nice challenge. I will definitely be attempting.
Software Engineer | Backend Developer | Introverted Tech Tinkerer
10 个月of all Unix tools, the one that I have mighty respect to the developers is grep. It's powerfull in parsing files and inputs passed into in an efficient way. Idk how they did it but they did it ?? ?? . Now am gonna remake it, thanks ??
DevOps at Meesho
10 个月Build a TIC-80 game :)
Senior SW Engineer, MCS, I`m not a robot [V], #opentowork
10 个月I have done that on Delphi for Windows about 25 years ago and I am still using it.
I am a Data Architect who guides process-heavy organizations in improving decision-making, reducing operational costs, and enhancing overall efficiency using Generative AI
10 个月Great challenge, I did the exact same thing for a class of students learning Python a few months ago. Here's how we proceeded: - Start with tests defining the behavior of the app: storing, retrieving, making sure stored password is encrypted... - Then make a console interface that uses this "core" we've created, - Finally make a UI interface with tkinter. Great way to learn about the separation of concerns between the core of an app and its interfaces (hex arch), and also some various cryptography concepts.