A while back, I wrote about something I called “Potholder Projects” for people learning a new skill- in particular, programming. These are projects that are easy to do, teach something about the skill, and most importantly, produce something useful at the end. I wanted to see coding tutorials that, rather than going straight from “this is how you make the screen say ‘Hello World!'” to “you’ll need to hook up a database to your AJAX dev environment”, had more intermediate steps with immediately available benefits.
It’s been a while since I’ve tried to teach myself to code, but I think I’ve come up with a good potholder project: a DIY password card.
The idea of a password card is pretty simple. You write the letters A to Z across the top of a piece of graph paper. Then, you write them down the side. You now have a 26×26 grid with row and column labels in letters. Fill in the grid with random characters, and that’s your password matrix. When you want to make a password for a website, you use the first letter of the site as the row, the second letter (or third, or last, or…) as the column, and where they meet, that’s your first character.
Still with me? Like, if you wanted to create a password for google.corn (I don’t know if “.corn” is a valid TLD, but it should be, and should be for people who care deeply about kerning), you’d go down to the “G” row, then over to the “O” column, and whatever character you found there would be the start of your password. From there, you go out1 to your password length2, and you have your password!
1go out: to pick a direction (up, diagonally down and left, out in a spiral, etc.) and enter the characters you find along that path.
2password length: however long you want your passwords to be. I use 10 characters.
SO! That’s how a password card works. Still confused? Take another look at the password card page and all its pretty instructions. I’m suggesting a slightly different scheme, because it’ll be easier to program.
And that’s where the actual programming comes in. Up there, where I said you need to fill in your grid with random characters? You suck at filling in truly random characters. I mean, the stuff you’ll put in will be harder for a thief to crack than passwords like “password1“, but any programming language’s “random” function will be WAY harder than that. Besides, filling in random characters for 676 little boxes is so tedious, I used a computer just to find out how much 26 times 26 even is. I’m certainly not going to fill in those boxes by hand.
That, in a nutshell, is the project: write a program so you can print out your own password card. (Yes, you probably should print it out.) If you can think of any improvements (I thought of two or three just now!), go ahead and try to code those in, too. That’s kind of what makes it a potholder project: if you want to test stuff out, and it works, you have an even better project on your hands. And if it doesn’t, you haven’t wasted very much time on it! So go a-coding, and keep your logins safe from those scalding hot sites out there.