如何在javascript中验证验证代码?

如何在javascript中验证验证代码?,javascript,html,validation,Javascript,Html,Validation,我正在创建一个带有验证代码的表单。 验证码是图像,对吗?(如果我错了,请告诉我。) 如何知道用户正在输入正确的验证码。(这意味着如何验证javascript中的验证代码,甚至需要检查用户是否输入了正确的大小写。)或者可以在servlet中也可以。 这里是我在html页面中的代码 <html><body> <script type="text/javascript"> function ValidateForm(frm) { if (frm.CaptchaCo

我正在创建一个带有验证代码的表单。 验证码是图像,对吗?(如果我错了,请告诉我。) 如何知道用户正在输入正确的验证码。(这意味着如何验证javascript中的验证代码,甚至需要检查用户是否输入了正确的大小写。)或者可以在servlet中也可以。 这里是我在html页面中的代码

<html><body>
<script type="text/javascript"> 
function ValidateForm(frm) {
if (frm.CaptchaCode.value == "") {alert('Enter web form code.');frm.CaptchaCode.focus();return false;}  
return false;
}
function ReloadCaptchaImage(captchaImageId) {
var obj = document.getElementById(captchaImageId);
var src = obj.src;
var date = new Date();
var pos = src.indexOf('&rad=');
if (pos >= 0) { src = src.substr(0, pos); }
obj.src = src + '&rad=' + date.getTime();
return false; }
</script>
<i>Enter web form code*:</i>
<input id="CaptchaCode" name="CaptchaCode" type="text" style="width:80px; border:1px solid #999999;" maxlength="6" />
<a href="http://www.SnapHost.com"><img id="CaptchaImage" alt="Web Form Code" title="Anti-spam web forms"
style="margin-left:20px; border:1px solid #999999"
src="http://www.SnapHost.com/captcha/WebForm.aspx?id=HQWK4M77B9KH&ImgType=2" /></a>
<br /><a href="#" onclick="return ReloadCaptchaImage('CaptchaImage');">
<span style="font-size:12px;">reload image</span></a>
</body></html> 

函数ValidateForm(frm){
if(frm.CaptchaCode.value==”){alert('输入web表单代码');frm.CaptchaCode.focus();返回false;}
返回false;
}
函数重载CAPTCHAIMAGE(captchaImageId){
var obj=document.getElementById(captchaImageId);
var src=obj.src;
变量日期=新日期();
var pos=src.indexOf('&rad=');
如果(pos>=0){src=src.substr(0,pos);}
obj.src=src+'&rad='+date.getTime();
返回false;}
输入web表单代码*:


嗯,你不能。它不能在客户端上可用。否则,robot也可以运行javascript——而您的工作将毫无意义

但是,您可以做两件事:

AJAX请求 您可以将用户输入的代码发送到服务器,服务器将验证答案并返回“是”或“否”。
优点:

  • 轻松的
  • 您可以在每次尝试后重新生成代码
缺点:

  • 需要一点带宽
  • 延迟后,可能需要一段时间才能加载AJAX调用
不对称包埋 这是一种更容易受到攻击,但更优雅的方法。通常,您要做的是使用captcha代码发送哈希(例如
md5
,但我建议使用更强大的算法)。如您所知,哈希数据无法检索回来。因此,在javascript代码中,您需要对用户输入的代码进行散列,并将其与您随页面发送的散列进行比较

优点:

  • 用户立即被告知状态
  • 没有带宽问题
缺点:

  • 必须在客户端实现哈希函数
  • 验证同一代码的尝试次数不限-这意味着破坏验证码与破坏实际的哈希算法一样困难(根本不用担心)

实际的实现依赖于服务器(PHP)代码,而不是客户端实现:-)哦。。好的,我是一个新的学习者。我知道html、javascript和servlet。所以,我只想知道是否有任何方法可以用javascript实现。我不知道AJAX和非对称加密。没关系。非常感谢。你知道验证码是如何工作的吗?如果你这样做了,你还必须知道,没有服务器的合作,你就没有机会猜测结果。哦,如果你不愿意学习,请不要称自己为学习者。