随机英文验证(大小写字母组合)跟前面的随机数字验证码差不多。

由于大小写字母一共有52个,我不可能一个一个的写出来弄成一个数字,所以,我上网查找了资料,可以利用ascii将数字转为字母。但是在转换过程中也出现了一系列问题。存在一直出现索引超出范围的问题,后来调试了蛮久,才发现是我定义的空String数组没有初始化,初始化必须要指定长度。

letter.cs代码

namespace number
{public partial class letter : System.Web.UI.Page{protected void Page_Load(object sender, EventArgs e){if (!IsPostBack){Label1.Text = getletters(4);        }if (!string.IsNullOrEmpty(HiddenField1.Value)){Session["letters"] = HiddenField1.Value.ToLower();Label1.Text = HiddenField1.Value;}}  private String getletters(int n){String s = "";int cal = 0;String[] num = new String[52];//必须要初始化,在你初始化的时候要指定长度for (int i = 65; i <= 122; i++){if (i > 90 && i < 97)continue;System.Text.ASCIIEncoding asciiEncoding = new System.Text.ASCIIEncoding();byte[] btNumber = new byte[] { (byte)i };num[cal] = asciiEncoding.GetString(btNumber);cal += 1;}Random ran = new Random();for (int i = 0; i < n; i++){int t = ran.Next(num.Length);//产生一个小于num.Length的数字s += num[t];}Session["letters"] = s.ToLower();return s;}protected void Button1_Click1(object sender, EventArgs e){if (TextBox1.Text.ToLower() == Session["letters"].ToString()){Response.Write("成功!");TextBox1.Text = "";}else{Response.Write("失败!");TextBox1.Text = "";HiddenField1.Value = "";Label1.Text = getletters(4);//重新产生随机数字}}}
}

letter.aspx代码

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/><title>随机英文验证码</title><script type="text/javascript">function getletters(n) {var s = "";                   var cal = 0;var num = new Array(52);           for(var i=65;i<=122;i++){if (i > 90 && i < 97)continue;             num[cal] = String.fromCharCode(i);               cal+=1;}          for (var i = 0; i < n; i++) {var t = Math.ceil(Math.random() * num.length);//Math.ceil(n); 返回大于等于n的最小整数。s += num[t];}document.getElementById("Label1").innerHTML = s;//这里不能是.Text,label在客户端会变成<span>,如果不用innerHTML改变不了值                    document.getElementById("HiddenField1").value = s;}function changestyle() {document.getElementById("lab").style.cursor = 'pointer';}</script>
</head>
<body><form id="form1" runat="server"><div></div><p>验证码:<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
</p><div id="lab" οnclick="getletters(4)" οnmοusemοve="changestyle()"><asp:Label ID="Label1" runat="server" Text="Label"></asp:Label></div>          <%--<a href="javascript:void(0)" οnclick="getletters(4)" >看不清,换一张</a> --%><%--  <!-- -->, html comment会包含在最终生成的html文件中现在使用的注释,aspx comment 不会包含在最终生成的html文件中 --%><asp:HiddenField ID="HiddenField1" runat="server" /><asp:Button ID="Button1" runat="server" Text="提交" OnClick="Button1_Click1"  /></form>
</body>
</html>

效果图

随机字母加数字验证就不多废话了,把随机数字和英文验证的代码整合在一起就可以了。

代码放在https://github.com/1126048156/-.git

letter这部分就是随机英文验证码的代码,mixture是英文加数字混合的代码。

(二)验证码模块(随机英文验证and随机英文数字混合验证+Session)相关推荐

  1. Windows身份验证和混合验证的区别

    两个验证方式的不同主要集中在信任连接和非信任连接. windows 身份验证相对于混合模式更加安全,使用本连接模式时候,sql不判断sa密码,而仅根据用户的windows权限来进行身份验证,我们称为& ...

  2. java--随机验证码的生成(4个随机英文与1个数字)

    逻辑在于:使用数组存储52个英文字母(大写+小写),利用random生成随机索引,通过随机索引获取对应的英文字母,即可达到随机获取验证码的目的. 加入0~9随机数字,如果不将字符串转换形成字符数组的话 ...

  3. Abp.Zero 手机号免密登录验证与号码绑定功能的实现(一):验证码模块

    这是一篇系列博文,我将使用Abp.Zero搭建一套集成手机号免密登录验证与号码绑定功能的用户系统: Abp.Zero 手机号免密登录验证与号码绑定功能的实现(一):验证码模块 Abp.Zero 手机号 ...

  4. python随机产生100个整数二进制_PYTHON练习题 二. 使用random中的randint函数随机生成一个1~100之间的预设整数让用户键盘输入所猜的数。...

    Python 练习 标签: Python Python练习题 Python知识点 二. 使用random中的randint函数随机生成一个1~100之间的预设整数让用户键盘输入所猜的数,如果大于预设的 ...

  5. python验证码生成器_用Python实现随机验证码

    0.说明 在网络上各种平台上登陆时,都会看到各种各样的验证码,大部分都是字母+数字的随机验证码,下面来主要是通过Python生成一个可以包含大小写字母和数字的随机验证码. 1.思路 在Python中, ...

  6. python随机森林 交叉验证_随机森林算法详解及Python实现

    一 简介 随机森林是一种比较有名的集成学习方法,属于集成学习算法中弱学习器之间不存在依赖的一部分,其因为这个优点可以并行化运行,因此随机森林在一些大赛中往往是首要选择的模型. 随机森立中随机是核心,通 ...

  7. python让用户输入一个整数_PYTHON练习题 二. 使用random中的randint函数随机生成一个1~100之间的预设整数让用户键盘输入所猜的数。...

    Python 练习 标签: Python Python练习题 Python知识点 二. 使用random中的randint函数随机生成一个1~100之间的预设整数让用户键盘输入所猜的数,如果大于预设的 ...

  8. python使用random模块生成随机数、实现随机乱序和随机抽样?

    如何使用random模块生成随机数.实现随机乱序和随机抽样? random.random()函数可以生成[0.0, 1.0)之间的随机浮点数. random.uniform(a, b)函数可以生成[a ...

  9. 用三个线程实现生产者消费者模型,其中一个线程作为生产者,二个线程作为消费者,生产者随机生产一个时间戳或者字符串,消费者消费这个时间戳,并不能重复消费,并将其打印出来

    题目要求: 用三个线程实现生产者消费者模型,其中一个线程作为生产者,二个线程作为消费者,生产者随机生产一个时间戳或者字符串,消费者消费这个时间戳,并不能重复消费,并将其打印出来.(这是一道百度面试的算 ...

最新文章

  1. 50大产业链全景图(高清完整版)
  2. JS鼠标移动显示图片
  3. 有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?...
  4. 剑指Offer #13 调整数组顺序使奇数位于偶数前面 | 图文详解
  5. Java提取mssql备份文件的数据
  6. java 抽象封装多态_java面向对象(封装,继承,多态,抽象,接口的定义和实现)...
  7. Spring框架jar包分类(转)
  8. 数据结构C语言数组字符数组
  9. 转一篇:如何快速的修改参考文献
  10. BRVAH分组功能原理分析
  11. python pypdf2另存为图片_Python系列—PDF文本与图片抽取
  12. Call for Presentations!Flink Forward Global 2021 议题征集ing
  13. 「轻阅读」基于 Flink SQL CDC的实时数据同步方案,附视频教程
  14. 笔记本计算机故障与诊断,笔记本电脑维护与故障诊断
  15. 电脑远程连接已停止工作 解决方案
  16. DAVE笔记--Micrium uc-Probo DashBoard调试
  17. CVPR2021提出的一些新数据集汇总
  18. 怎么把所有图片变成一样的大小
  19. 29 外观模式(Facade模式)详解
  20. 在 Excel 中查询每个区间并排序

热门文章

  1. hdu-1052 Tian Ji -- The Horse Racing
  2. 计算机的扩展模式,Win7双屏复制/双屏扩展设置教程
  3. LaTex创建四级目录
  4. 16083001(古墓丽影GPA)
  5. 微信小程序开发得会议扫码签到系统
  6. 复旦赵卫东:大数据的系统观
  7. 修改Odoo 8版权信息
  8. python怎么取百位_#python计算结果百位500向下取整,(0-499取000,500-999取500)
  9. 喜报 | 天空卫士被评为北京市专精特新“小巨人”企业
  10. 徒手攀登酋长岩,世界第一人!