Hey guys, welcome to 100 Days of Code. And today we are on day 29,
where we're going to be building a password manager.
So we're going to be doing this using tkinter.
And the real inspiration for this project came about because I was trying to
register
for a website where it asked for a password that was just insanely
complicated, something along these lines, or it has to be really long.
It has to include lots of different things,
it can't match your previous passwords. It just has a whole bunch of rules
and I really struggled coming up with a password that actually match all of their
requirements. And by the time that I came up with it,
I've already forgotten what the password was.
One of my favorite blogs is Coding Horror by a guy called Jeff Atwood.
And you might not know him by name,
but you will actually have used something that he's made.
He is one of the founders and original creators
Stack Overflow
which I'm sure by now you're well familiar with.
And even he was talking about how password rules are just really terrible.
They're so long and they're so complicated and they've even inspired
a really good XKCD comic,
which essentially tells the truth that through 20 years of effort,
we've successfully trained everyone to use passwords that are hard for humans to
remember but easy for computers to guess. This is the crazy state of things.
So we're going to be creating a program to combat that.
And it's going to be called MyPass, our password manager,
and we're going to use it to store and generate passwords.
For example, if I wanted to create an account on App Brewery,
then I enter the name of the website so that I know what this password is for,
I put in my email, and username is already prepopulated in my password
manager. And then all I have to do is to either come up with a password
that is hopefully not terrible, but I can obviously never remember,
or I can use the builtin generate password to just generate me a very complex,
very long password with all of the required numbers and symbols and all of that.
And once I'm done with that, then I can click add,
and I get a popup asking me if this is okay.
And if that all looks good, then I click Yes
and that data gets added to a text file,
which I have on my computer.
So this is not an internet-based service and you keep everything locally on your
computer,
which some people feel is a lot safer than using a third-party service
like LastPass or whatever else.
So this is what we're trying to build and it's got some really neat features.
For example, it's got some basic validations. So if you, for example,
leave one of the fields empty and you click add, you get a popup that tells you,
please don't leave any of the fields empty. Or if you generate a password,
then you can actually immediately use it by pasting it. What's happening behind
the scenes is as soon as I click on generate password,
then my password is saved onto my clipboard and I can paste it into the password
field on the website I'm trying to sign up for.
This is what we're going to be building today.
And it's going to use everything you've learned about tkinter
and we're going to be learning some new things that you can do with
tkinter as well. Once you're ready,
head over to the next lesson and let's get started.