那些琐碎的知识-----登录验证码

1、新建文件CheckCode.aspx

前台不用写,后台代码为:

using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Drawing;

public partial class common_CheckCode : System.Web.UI.Page
{
private void Page_Load(object sender, System.EventArgs e)
{
this.CreateCheckCodeImage(GenerateCheckCode());
}

private string GenerateCheckCode()
{
int number;
char code;
string checkCode = String.Empty;

System.Random random = new Random();

for (int i = 0; i < 4; i++)
{
number = random.Next();

//if (number % 2 == 0)
code = (char)(‘0‘ + (char)(number % 10));
//else
//code = (char)(‘A‘ + (char)(number % 26));

checkCode += code.ToString();
}

Session["CheckCode"] = checkCode;

return checkCode;
}

private void CreateCheckCodeImage(string checkCode)
{
if (checkCode == null || checkCode.Trim() == String.Empty)
return;

System.Drawing.Bitmap image = new System.Drawing.Bitmap((int)Math.Ceiling((checkCode.Length * 12.5)), 22);
Graphics g = Graphics.FromImage(image);

try
{
//生成随机生成器
Random random = new Random();

//清空图片背景色
//g.Clear(Color.AliceBlue);
g.Clear(Color.FromArgb(246, 251, 255));

//画图片的背景噪音线
/*
for (int i = 0; i < 25; i++)
{
int x1 = random.Next(image.Width);
int x2 = random.Next(image.Width);
int y1 = random.Next(image.Height);
int y2 = random.Next(image.Height);

g.DrawLine(new Pen(Color.Silver), x1, y1, x2, y2);
}
*/
Font font = new System.Drawing.Font("Arial", 12, (System.Drawing.FontStyle.Bold));
System.Drawing.Drawing2D.LinearGradientBrush brush = new System.Drawing.Drawing2D.LinearGradientBrush(new Rectangle(0, 0, image.Width, image.Height), Color.Blue, Color.DarkRed, 1.2f, true);
g.DrawString(checkCode, font, brush, 2, 2);

//画图片的前景噪音点
/*
for (int i = 0; i < 100; i++)
{
int x = random.Next(image.Width);
int y = random.Next(image.Height);

image.SetPixel(x, y, Color.FromArgb(random.Next()));
}
*/

//画图片的边框线

//g.DrawRectangle(new Pen(Color.Silver), 0, 0, image.Width - 1, image.Height - 1);

System.IO.MemoryStream ms = new System.IO.MemoryStream();
image.Save(ms, System.Drawing.Imaging.ImageFormat.Bmp);
Response.ClearContent();
Response.ContentType = "image/bmp";
Response.BinaryWrite(ms.ToArray());
}
finally
{
g.Dispose();
image.Dispose();
}
}
}

2、在需要验证码的页面建立标签


<img id="codeImg" alt="点击更换验证码" style="display: inline; cursor: pointer;" src="CheckCode.aspx" />

3、在需要验证码的页面上引入jquery的js文件,然后添加如下jQuery代码


$(function(){
$("#codeImg").click(function(){
$("#codeImg").attr("src","CheckCode.aspx?temp="+(new Date().getTime().toString(36)));
});
});

那些琐碎的知识-----登录验证码,布布扣,bubuko.com

时间: 2024-10-12 18:02:49

那些琐碎的知识-----登录验证码的相关文章

那些琐碎的知识-----搜索回车跳转页面

如图搜索框,想要实现文本输入内容后敲击回车(等同于点击后面的小放大镜图标)后跳转到搜索结果的页面 <div class="head-ss02"> <input name="ss" type="text" id="search" onkeypress="javascript:enterSubmitss(this,event);" size="2" /> <in

C# 登录验证码

基于字符的图片验证码是系统在用户访问页面时随机产生的一个图像,图像中包含数字.字母或其他文字.其中字符序列与背景图像进行信息融合,添加干扰噪声,或对图像进行混杂.扭曲.粘连.变形等处理,以增加图像识别的难度. 图片验证码的生成主要分成两个步骤: 1.生成随机字符串: 2.生成验证码图片. 1 public partial class CheckCodeImageExt : System.Web.UI.Page 2 { 3 protected void Page_Load(object sende

Selenium2学习-018-WebUI自动化实战实例-016-自动化脚本编写过程中的登录验证码问题

日常的 Web 网站开发的过程中,为提升登录安全或防止用户通过脚本进行黄牛操作(宇宙最贵铁皮天朝魔都的机动车牌照竞拍中),很多网站在登录的时候,添加了验证码验证,而且验证码的实现越来越复杂,对其进行脚本识别的难度也越来越高.这对我们自动化脚本编写带了非常的不便,那么如何解决登录时的验证码问题呢?经常有初学自动化脚本编写的小主们问及此问题. 此文主要针对如何解决自动化测试脚本中含登录态的操作问题,即如何降低验证码对自动化脚本编写过程中的解决方法进行分析和解决,并以实例演示(基于易迅网易迅账号登录)

selemiun 自动化测试登录验证码处理

selemiun 自动化测试登录验证码处理 一.软件及插件的安装 1.火狐浏览器版本(55.0(x64 zh-CN):https://www.cnblogs.com/sandysun/p/7838113.html插件安装:(1)firebug(2)selenim ide(3)xpath finder 2.Python及编辑器安装(1)Python 3.7.0(下载火狐驱动geckodriver.exe2.32,保存在Python\py3安装路径中) pycharm 2018(2)下载seleni

Java实现登录验证码

登录验证码 Servlet /* 从请求中获取数据,获取验证码的session的值转为String类型,?????? 销毁,防止返回后验证码不刷新,重新验证成功?????? 判断验证码是否相同(忽略大小写)?? 相同:创建user对象调用service层的方法验证返回结果是否为空?????? ?为空:创建session:储存错误信息,转发,登录页面显示登录名或密码错误???? ?不为空:创建session:储存用户名,转发,到登录成功页面?????? 不相同:创建session:储存错误信息,登

登录验证码实现(Captcha)

登录验证码 登录验证是一般系统都会有的功能,验证的方式也多种多样,比如输入式验证码,拖动式验证条,拖动式验证拼图等等. 我们这里先实现常规的输入验证码的方式,右边显示验证码图片,点击可刷新,左边输入验证码.如下图为实现的效果. 实现案例 验证码的实现需要前后端协同,脱离彼此则不可用,故将前后端的实现放在一起,不再另写前端教程. 后端实现 1.添加依赖 打开 kitty-admin 工程,添加maven依赖. pom.xml <!-- kaptcha --> <dependency>

thinkphp3.2 实现登录+验证码

1 <?php 2 3 namespace Model; 4 5 use Think\Model; 6 7 class UserModel extends Model { 8 9 function checkNamePwd($mg_name, $mg_password) { 10 //实例化模型User 11 $user = M("User"); 12 //接收控制器传的数据,进行判断是否一致.并且返回 13 $info = $user->getBy_mgname($mg_

SSM+Shiro系统登录验证码的实现

1.验证码生成类: import java.util.Random; import java.awt.image.BufferedImage; import java.awt.Graphics; import java.awt.Font; import java.awt.Color; /** * 验证码生成器类,可生成数字.大写.小写字母及三者混合类型的验证码. 支持自定义验证码字符数量: 支持自定义验证码图片的大小: 支持自定义需排除的特殊字符: * 支持自定义干扰线的数量: 支持自定义验证码

Tomcat配置虚拟主机后的登录验证码问题

先描述一下问题现象,在本地测试运行一个java web网站,一切正常.但把网站部署到Linux服务器上后,发现登录出了问题,提示验证码输入不正确.登录时需要输入验证码,而验证码的原值是先存入session中的,然后点击[登录]后,会对比用户输入的验证码与原值,可此时查看日志发现,从session获取验证码为null. 起先本人惯性地认为是代码的问题,可换了几种写法之后,仍然存在这种现象,仔细想了下服务器与本地环境的差异,锁定了一个点,服务器的域名跟本地是不同的,服务器上的tomcat设置了虚拟主