Improving a CAPTCHA - An idea
Ok, so you have probably already heard about all of the controversy my homey KC caused with his Captcha beater. He posted his suggestions on how to make Captcha stronge, which are provided below:
render the characters with different colors
make some characters darker than the background, and some lighter
use gradient colors for the backgrounds and the characters
dont align all the characters vertically
dont make the answers words, so that a dictionary could be used
use more characters and symbols
use uppercase and lowercase characters
use a different number of characters each time
rotate some of the characters more drastically (i.e. upside down)
do more overlapping of characters
make some pixels of a single character not touching
have grid lines that cross over the characters with their same color
consider asking natural language questions
But I was thinking about an addition. In my building, we have an access code to get in the building on weekends and extreme hours - and you basically punch in your code. The buttons are all LED so the numbers appear Lit up vs. being painted on or hard coded. However it's got one neat twist to it -- you hit an “Enter Code” button, since it's LED, the numbers appear in a scrambled format. So you never know where any given number is going to show up. This is done, ostensibly, to keep someone from looking over your shoulder and figuring out what you just punched.
So, how does this relate to captcha? Well, randomly, you could attach a number to either the top, bottom, left or right of a given character. So if a was the first character, but it had a 3 next to it - it would need to be entered third. You could rotate the numbers around different parts of the letters to help prevent reading across - bottom etc - it would have the side benefit if making it more difficult to figure out the base numbers. And if you really wanted to get tricky, you could make it so you appended some other crap in front of the number just to really throw a monkey wrench into the process. Also, you could embed something like “ALL CAP LETTERS” or so even if there was an 'a', you'd need to enter an 'A'. So far from what I've been toying with - writing this is a whole lot easier than reading it will be (which is good) - b/c I'm trying to copy what casey did and just getting the pixels is enough of a pain in the a33 for me to get frustrated.