A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

好吧   前面发那个帖子图片都不能看。。抱歉了。。。。
现在又重新弄一次 发现 图片上传上去很模糊不是很清楚 ,也不知道为什么 。
然后放弃直接上图了  。。。打开环境,直接把代码复制过来了。。。。我想这样肯定就清楚了吧、、、、
结果字数超出范围了。。好吧  无比纠结
这个相对其上个帖子来说要好一点吧
大晚上的又重新弄了一次。。。如果版主看到  能不能考虑多给几个技术分。。。。。哈哈  先感谢一下
弄这个帖子。真心好累啊。。。。。不过学到了很多。。很有满足感 。。。哈哈。。。。别的不说。。直接上代码了。。。

还有 各位大神  看到了请多多指出不足或者错误的地方。。。供大家学习。。。。




随着人们对网络安全的日益重视,验证码技术的发展也越来越迅速,通常情况下,验证码有一下集中验证方式:
1.4为数字验证码,,这种严重法师通常是一组随机的数字字符串,4位数字验证码是最原始的验证码,验证原理比较简单,验证作用也不是很大,对网络黑客的安全防范作用也不是很强,因此在网站应用中也很少见。
2.GIF格式验证码,目前常用的的随机数字图片验证码,图片上的字符主要有文字和数字组成,紫檀没有太多的变化,验证作用比4为数字验证码要好一些,CSDN网站用户登录就是用GIF格式的验证码。
3.PNG格式验证码,这种验证方式验证码的图片用随机数字与随机大写英文字母组成,整个构图有点张扬,没刷新一次每个字符的位子还会变,偶时候刷新出的图片让人很难辨认,。使用PNG格式验证码比使用GIF验证格式更安全,QQ网站用户登录就是用PNG格式的验证码。
4.BMP格式验证码,这种验证方式的验证码有随机数字大写英文字母和随机干扰图素组成,BMP格式的验证码能够改变不同的随机位子,有时候还可以变换随机的字体。
5.JPG格式的验证码,这种验证码是有随机英文字母,随机颜色,随机位置和程度组成,Google的Gmail注册时使用的就是JPG格式的验证码。

接下来的代码是最简单的随机数字验证码

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

public partial class UserLogins : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        //非页面返回时,生成随机数
        if (!Page.IsPostBack)
        {
            string getnums = GetVali(); //获取随机数
            Label1.Text = getnums;      //在标签控件中显示随机数
        }
    }
    /// <summary>
    /// 随机生成4位数
    /// </summary>
    /// <returns>返回生成的随机数</returns>
    public string GetVali()
    {
        string strsvali = "0,1,2,3,4,5,6,7,8,9";       //定义一个字符串
        string[] ValiArray = strsvali.Split(',');      //定义一个字符数组
        string ReturnNum = "";                         //定义一个返回验证码的字符串
        //记录随机数,避免产生同样的随机数
        int nums = -1;
        //确保产生随机数的不同
        Random vrand = new Random();
        for (int n = 1; n < 5; n++)
        {
            if (nums != -1)
            {
                vrand =new Random(n*nums *unchecked((int)DateTime.Now.Ticks));
            }
            int t = vrand.Next(10);
            nums = t;
            ReturnNum += ValiArray[t];
        }
        Session["Valid"] = ReturnNum;
        return ReturnNum;                //返回生成的随机数
    }
    protected void Button1_Click(object sender, EventArgs e)
    {
        //判断获得的验证码与用户输入的验证码是否一致
        if (Session["Valid"].ToString() == TextBox3.Text)
        {
            this.Page.RegisterStartupScript("ss", "<script>alert('您已经成功通过登录验证!')</script>");
        }
        else
        {
            this.Page.RegisterStartupScript("ss", "<script>alert('您输入的验证码错误!')</script>");
        }
    }
}



0 个回复

您需要登录后才可以回帖 登录 | 加入黑马