A few years back I found myself hooked on a website that presented a number of password cracking challenges. You had to complete the first challenge before you could get to the second and so on.
It started with a password listed in plain HTML source code and moved on to executables and logging into *nix systems. It required reverse engineering, brute force and various other approaches to get the prize (the password) each time.
Lots of fun – and probably not a good use of my time when I should have been working on serious C++ code for real world projects, but still…
The site has long since disappeared, but it taught me a couple of worthwhile things:
Firstly, that it is very easy to create something that isn’t secure, and if you fall into that trap as a programmer, a web developer or a systems administrator, then the blame rests solely on your head. There WILL be someone out there that is interested in what you are doing.
Secondly, that quite often, it is sheer perseverance more than anything else that gets you the result. When you persevere, you end up using ingenuity – that lovely quality that comes into play when your first (or hundreth) attempt doesn’t work.
I have a penchant for programming challenges, and have been known to be sat at the computer at 5am trying to complete one on the rare occasions that sleep eludes me, so if you have some excess energy that you want to channel into something that won’t result in a debate on your extradition, try this 😉
Be good now.