您目前尚未登陆,请选择【登陆】或【注册
首页->功能源码->Ajax无刷新中文验证码>>App-Code/ChineseCode.cs>>代码在线查看
温馨提示:代码在线浏览功能只能做为源码浏览参考,不能展示项目的全部,如果想更进一步了解该代码请下载:Ajax无刷新中文验证码


当前文件路径:ChineseCode/App_Code/ChineseCode.cs 文件类型
普通视图
		            
1using System; 2using System.Data; 3using System.Configuration; 4using System.Web; 5using System.Web.Security; 6using System.Web.UI; 7using System.Web.UI.WebControls; 8using System.Web.UI.WebControls.WebParts; 9using System.Web.UI.HtmlControls; 10using System.Text; 11//该源码下载自www.51aspx.com(51aspx.com) 12 13/// <summary> 14/// ChineseCode 的摘要说明 15/// 作者:高亮 16/// </summary> 17 18public class ChineseCode 19{ 20 public static void Main() 21 { 22 //获取GB2312编码页(表) 23 Encoding gb = Encoding.GetEncoding("gb2312"); 24 25 //调用函数产生4个随机中文汉字编码 26 object[] bytes = CreateRegionCode(4); 27 28 //根据汉字编码的字节数组解码出中文汉字 29 string str1 = gb.GetString((byte[])Convert.ChangeType(bytes[0], typeof(byte[]))); 30 string str2 = gb.GetString((byte[])Convert.ChangeType(bytes[1], typeof(byte[]))); 31 string str3 = gb.GetString((byte[])Convert.ChangeType(bytes[2], typeof(byte[]))); 32 string str4 = gb.GetString((byte[])Convert.ChangeType(bytes[3], typeof(byte[]))); 33 34 //输出的控制台 35 Console.WriteLine(str1 + str2 + str3 + str4); 36 } 37 38 39 40 ///此函数在汉字编码范围内随机创建含两个元素的十六进制字节数组,每个字节数组代表一个汉字,并将 41 ///四个字节数组存储在object数组中。 42 ///参数:strlength,代表需要产生的汉字个数 43 public static object[] CreateRegionCode(int strlength) 44 { 45 //定义一个字符串数组储存汉字编码的组成元素 46 string[] rBase = new String[16] { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "a", "b", "c", "d", "e", "f" }; 47 48 Random rnd = new Random(); 49 50 //定义一个object数组用来 51 object[] bytes = new object[strlength]; 52 53 /**/ 54 /*每循环一次产生一个含两个元素的十六进制字节数组,并将其放入bject数组中 55 每个汉字有四个区位码组成 56 区位码第1位和区位码第2位作为字节数组第一个元素 57 区位码第3位和区位码第4位作为字节数组第二个元素 58 */ 59 for (int i = 0; i < strlength; i++) 60 { 61 //区位码第1位 62 int r1 = rnd.Next(11, 14); 63 string str_r1 = rBase[r1].Trim(); 64 65 //区位码第2位 66 rnd = new Random(r1 * unchecked((int)DateTime.Now.Ticks) + i);//更换随机数发生器的种子避免产生重复值 67 int r2; 68 if (r1 == 13) 69 { 70 r2 = rnd.Next(0, 7); 71 } 72 else 73 { 74 r2 = rnd.Next(0, 16); 75 } 76 string str_r2 = rBase[r2].Trim(); 77 78 //区位码第3位 79 rnd = new Random(r2 * unchecked((int)DateTime.Now.Ticks) + i); 80 int r3 = rnd.Next(10, 16); 81 string str_r3 = rBase[r3].Trim(); 82 83 //区位码第4位 84 rnd = new Random(r3 * unchecked((int)DateTime.Now.Ticks) + i); 85 int r4; 86 if (r3 == 10) 87 { 88 r4 = rnd.Next(1, 16); 89 } 90 else if (r3 == 15) 91 { 92 r4 = rnd.Next(0, 15); 93 } 94 else 95 { 96 r4 = rnd.Next(0, 16); 97 } 98 string str_r4 = rBase[r4].Trim(); 99 100 //定义两个字节变量存储产生的随机汉字区位码 101 byte byte1 = Convert.ToByte(str_r1 + str_r2, 16); 102 byte byte2 = Convert.ToByte(str_r3 + str_r4, 16); 103 //将两个字节变量存储在字节数组中 104 byte[] str_r = new byte[] { byte1, byte2 }; 105 106 //将产生的一个汉字的字节数组放入object数组中 107 bytes.SetValue(str_r, i); 108 109 } 110 111 return bytes; 112 113 } 114} 115
还没有找到您心仪的内容?请用.net源码大搜捕
代码片断 打包下载该项目完整源码:Ajax无刷新中文验证码

- Asp.net简单试题库管理系统源码

- 深圳某模具厂网站源码

- 明日Asp.net在线论坛源码

- Asp.net视频点播系统源码

- Asp.net简单公文流转系统(MV..

- AjaxPro无刷新三级联动下拉菜单

- Asp.net简单博客系统

- 利用ajax和WebService实现的..

51Aspx.com 版权所有 CopyRight © 2000-2008. 京ICP备06046876号