Coding Challenge  #58 - Password Manager

Coding Challenge #58 - Password Manager

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:

  1. Create a password vault.
  2. Sign in to an existing password vault.
  3. Create a password record within a vault.
  4. Retrieve a password record and the associated password from a vault.

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.


Olamide Mustapha

Software Engineer | Fullstack Developer

7 个月

This looks like a nice challenge. I will definitely be attempting.

John Kagunda

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 ??

Arnav Andrew J.

DevOps at Meesho

10 个月

Build a TIC-80 game :)

Tofig Kareemov

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.

Valérian de Thézan de Gaussan

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.

要查看或添加评论,请登录

John Crickett的更多文章

  • From The Challenges - IRC Client

    From The Challenges - IRC Client

    Welcome To Coding Challenges - From The Challenges! In this Coding Challenges “from the challenges” newsletter I’m…

    5 条评论
  • Coding Challenge #84 - Mandelbrot Set Explorer

    Coding Challenge #84 - Mandelbrot Set Explorer

    This challenge is to build your own Mandelbrot set explorer. The Mandelbrot set is a set of fractals that exhibit great…

    4 条评论
  • From The Challenges - Cat

    From The Challenges - Cat

    Welcome To Coding Challenges - From The Challenges! In this Coding Challenges “from the challenges” newsletter I’m…

    7 条评论
  • Coding Challenge #83 - Markdown Presentation Tool

    Coding Challenge #83 - Markdown Presentation Tool

    Coding Challenge #83 - Markdown Presentation Tool This challenge is to build your own version of Go’s Present or…

    3 条评论
  • From The Challenges - Shell

    From The Challenges - Shell

    Welcome To Coding Challenges - From The Challenges! In this Coding Challenges “from the challenges” newsletter I’m…

    3 条评论
  • Coding Challenge #82 - Markdown To PDF Editor

    Coding Challenge #82 - Markdown To PDF Editor

    Coding Challenge #82 - Markdown To PDF Editor This challenge is to build your own tool to convert markdown to PDF. It…

    14 条评论
  • From The Challenges - Diff

    From The Challenges - Diff

    Welcome To Coding Challenges - From The Challenges! In this Coding Challenges “from the challenges” newsletter I’m…

    7 条评论
  • Coding Challenge #81 - Brainf*ck Interpreter

    Coding Challenge #81 - Brainf*ck Interpreter

    This challenge is to build your own Brainf*ck Interpreter. Just in case you’re wondering, yes the * should be a u, but…

    34 条评论
  • From The Challenges - URL Shortener

    From The Challenges - URL Shortener

    Welcome To Coding Challenges - From The Challenges! In this Coding Challenges “from the challenges” newsletter I’m…

    13 条评论
  • 2024 - The Coding Challenges Highlights!

    2024 - The Coding Challenges Highlights!

    New Year Sale Now On! During the New Year sale you can get 30% off all Coding Challenges courses for paid subscribers…

    17 条评论

社区洞察

其他会员也浏览了