在评估任何验证码解决方案之前,您应该清楚地了解您的用户画像。不用说,任何验证码解决方案都会使您的网站更难使用。如果您的用户年龄较大且视力有难题,那么解析验证码可能会非常困难,甚至是不可能的。随机字符与实际单词相比,可能会影响您的用户。母语可能会影响用户对字符代表的理解(特殊字符)。这里没有建议,但了解您的用户以及他们可以容忍或能够做到什么,应该对您的决策产生重大影响。
我会支持第一个回答中提到的Mondor's Captcha。与reCaptcha不同,它完全独立,您不需要调用其他网站。此外,它允许要求解决一个简单的方程(如“5 + 3”),而机器人会回答“5+3”,人类会回答8。另外,与reCaptcha不同,您可以根据需要自定义它,并包括自己的字母表(西里尔文、阿拉伯文、中文等)。
如果您使用VB.NET作为基础语言(甚至是Classic ASP),我刚刚在TipsTrips.org上找到了一个很棒的免费CAPTCHA。您可以自定义所需的CAPTCHA,然后下载代码。.NET下载包括ASHX处理程序文件、两个VB类文件和一个ASPX测试页面。