有关验证码的问题!
发表在ASP.NET图书答疑 2009-08-03
是否精华
版块置顶:
 private string GenerateCheckCode() 
    { 
        //创建整型型变量 
        int number; 
        //创建字符型变量 
        char code; 
        //创建字符串变量并初始化为空 
        string checkCode = String.Empty; 
        //创建Random对象 
        Random random = new Random(); 
        //使用For循环生成4个数字 
        for (int i = 0; i < 4; i++) 
        { 
            //生成一个随机数 
            number = random.Next(); 
            //将数字转换成为字符型 
         [font color=#FF0000] code = (char)('0' + (char)(number % 10));  [/font]      

            checkCode += code.ToString(); 
        } 
        //将生成的随机数添加到Cookies中 
        Response.Cookies.Add(new HttpCookie("CheckCode", checkCode)); 
        //返回字符串 
        return checkCode; 
    } 
红色部分为何要nunber % 10?有什么作用?同时code = (char)('0' + (char)(number % 10));中的0干什么,为何要加上这个0呢? 
分享到:
精彩评论 3
Confidence2009
学分:0 LV1
2009-08-04
沙发
你好!
在C#中,%是用来取余操作的
//生成一个随机数 
number = random.Next(); 
//将数字转换成为字符型 
code = (char)('0' + (char)(number % 10)); 

number % 10中的number是随机数,这里是对10进行取余数操作!和10进行取余数操作是为了避免出现形如“1234“,“4567”......这样顺序排列的验证码!这样非常容易受SQL注入式攻击等!
code = (char)('0' + (char)(number % 10));
其中,随机数中若出现0是不能和10进行取余数操作的,所以在单列出数字“0”,然后与(char)(number % 10)进行字节连接!
说得只是我个人的理解,如果有什么不对 我们一起探讨!
chen1987
学分:0 LV1
2009-08-04
板凳
code = (char)('0' + (char)(number % 10));
其中,随机数中若出现0是不能和10进行取余数操作的,所以在单列出数字“0”,然后与(char)(number % 10)进行字节连接!
说得只是我个人的理解,如果有什么不对 我们一起探讨! 
------------------------------------------------------------------------------------------------------------------------
我不理解这一句“所以在单列出数字“0””,就是说不要数字0吗?number % 10这里我明白了。我讲下我自己的理解,number % 10会得到一个数,这个数中不会包含0,得到的数转换成字符,但是1的字符是一个奇怪的字,然后怎么有里面的‘0’相加呢?然后又再转换成字符?我知道理解一定错希望有高人能指点下
Confidence2009
学分:0 LV1
2009-08-07
地板
number % 10会得到一个数,这个数中不会包含0?那个告诉你的不能得到0?10%10取余数后结果是什么?
不用在这方面花太多时间,验证码在你学GDI+时再做一个系统学习!
首页上一页 1 下一页尾页 3 条记录 1/1页
手机同步功能介绍
友情提示:以下图书配套资源能够实现手机同步功能
明日微信公众号
明日之星 明日之星编程特训营
客服热线(每日9:00-17:00)
400 675 1066
mingrisoft@mingrisoft.com
吉林省明日科技有限公司Copyright ©2007-2022,mingrisoft.com, All Rights Reserved长春市北湖科技开发区盛北大街3333号长春北湖科技园项目一期A10号楼四、五层
吉ICP备10002740号-2吉公网安备22010202000132经营性网站备案信息 营业执照