zoukankan      html  css  js  c++  java
  • 关于简单验证码的实现

    当然,现在登录界面大部分都会有验证码机制。目的就在于防止注册机的恶意注册。下面来看看简单的验证码实现功能。

    1.当然是验证码绘制过程:

    Bitmap bit = new Bitmap(80,30);      
    
           Graphics g = Graphics.FromImage(bit);        
    
         g.FillRectangle(Brushes.White, 0, 0, bit.Width, bit.Height);   
    
              Random r = new Random();             //画线     
    
            for (int i = 0; i < 5; i++)           
    
      {             
    
        g.DrawLine(new Pen(Brushes.Gray), r.Next(0, bit.Width), r.Next(0, bit.Height), r.Next(0, bit.Width), r.Next(0, bit.Height));
    
                }             //画验证           
    string vali = "QWERTYUIOPASDFGHJKLZXCVBNM0123456789";
    for (int i = 0; i < 4; i++)
    {
    string a = vali.Substring(r.Next(0, vali.Length), 1);
    int argb = r.Next(int.MaxValue / 2, int.MaxValue); context.Session["vail"] = a; //保持数据
    g.DrawString(a, new Font("宋体", 14), new SolidBrush(Color.FromArgb(argb)), i * 20 + 3, r.Next(5, 15));
    }
    bit.Save(context.Response.OutputStream, ImageFormat.Jpeg);

    上面的代码段目的就在于实现验证码绘图机制,返回一个jpg格式的呆验证码的图片。
    2,绘制之后,当然是引用返回的jpg图片

    在登陆界面添加一个div标签

    <img id="ims" runat="server"  src="Handler/Vali.ashx"  alt="看不清!"  onclick="newimg()"/>来调用绘制图片,

    在使用简单js实现图片刷新功能。

            <script type="text/javascript">
                function newimg() {
                    document.getElementById("ims").src = document.getElementById("ims").src + "?";
                }
        </script>

    到这里就基本实现了验证,因为在绘制过程已经存储了session那么,在后台就可以实现验证码的验证过程,获取验证码 Session["vali"].ToString() == Session["vail"].ToString()验证机制。

    OK就到这里,方法比较粗陋,当然还有其他很多的实现方法。这里就不一一举出了。

  • 相关阅读:
    【转载】兼容php5,php7的cURL文件上传示例
    解决CURL 请求本地超时
    PHP 二维数组根据某个字段排序
    JS监听输入框值变化兼容 onpropertychange、oninput
    PHP AES的加密解密-----【弃用】
    PHP 开发API接口签名验证
    Python 逐行修改txt每条记录的内容
    Python 修改电脑DNS
    带小数点时间分钟转换
    Python 判断字符串是否为数字
  • 原文地址:https://www.cnblogs.com/drwu2009/p/3266351.html
Copyright © 2011-2022 走看看