B <-------- S
在S(Server)到 B (Browser)的过程中,假如 H(黑客)在B处获得了S 传过来的验证码,然后以穷举方式加验证码不断访问S试探密码,因为每一次穷举失败后S都会传回新的验证码过来,H 再获得此验证码再穷举,直到密码破译为止,如果验证码为数字时,H写个循环读取验证码的程序就可以轻易再穷举下去,假如为图片时,就算H 得到了,也是张图片,不可能把图片中的验证码转成字符型,从而穷举破译就不能进行下去。
B --------> S
在B(Browser)到S(Server)的过程中,B传过去的密码和验证码到了S的时候,因为S之前已经保存的传过去的验证码信息,所以此时S只要核对B传来的验证码就行了,如果通过了,再进一步验证密码,从而达到目的
当然,这只是防止H利用穷举方式破译密码,假如H有能力在B到S的通信过程中截取密码,那就另当别论了
用户在前台看到图片中的字符后,在输入框里输入看到的字符串,再和SESSION一比较,
if == 那么正确
else 错误!
楼主自己好好看看下面的实例:
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using System.Drawing.Imaging;