Hi, well i'm entirely new to this forum, and I only recently learned what a captcha actually was. I admin a phpbb site and we've seen an influx in people (i assume bots) creating profiles linking to unwholesome sites.
I'd say that captchas need to be relatively simple, otherwise many users simply won't understand them. I wasn't even 100% sure I was entering the correct code when signing up for this
From what I've read
, it looks like at least one (and probably more) captcha-beating algorithms work by identifying egdes of character shapes using an edge detection algorithm. Then once they have the shapes (and also the order), it just takes a well-trained neural net to decipher any amount of distortion/rotation (effectively mirroring the process of humans learning to read). So my suggestion would be to make the edges harder to detect.
One intriguing option I saw here
was to use an image (presumably the user identifies the 'elephant' and types the word). Unfortunately, I don't think it would be too hard to beat, once the stock of images was known. Plus it relies on language, spelling competency, etc.
So anyway, what about if a random image (e.g. from images.google.com) was used to seed the distortion of the text?
I made this one using a simple sequence in GIMP, using a feathered selection of the text which I then used to invert the original image. The feathering should beat the edge detection, and I'd be very surprised if someone could write a reliable algorithm to beat it. The only problem is to make sure that there isn't too much 50% grey in the image, since this inverts back to grey. I think a suitable image selection algorithm wouldn't be too hard to write.
Just thowing this into the melting pot, hoping it inspires someone....