ASP验证码代码
在ASP页面中生成图片验证码,需要用到System.Drawing命名空间下的很多类,首先我们需要新建一个CreateImage.aspx页面,在后台代码中定义用于生成验证码图片的方法,如下:
using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HTMLControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.XML.Linq;
using System.Drawing;
public partial class CreateImage : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
//产生4位验证码
string CheckCode = CreateCode(4);
//用于验证
Session["code"] = CheckCode;
CreateImages(CheckCode);
}
///
/// 产生验证码
///
///
///
public string CreateCode(int codeLength)
{
string so = "1,2,3,4,5,6,7,8,9,0,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,I,J,K,L,M,N,O, P,Q,R,S,T,U,V,W,X,Y,Z";
string[] strArray = so.Split(',');
string code = "";
Random rand = new Random();
for (int i = 0; i < codeLength; i++)
{
//Random.Next(minValue,maxValue);
//一个大于或等于minValue 且小于maxValue 的32 位带符号整数,即:返回的值范围包括minValue 但不包括maxValue。如果
//minValue 等于maxValue,则返回minValue。
code += strArray[rand.Next(0, strArray.Length)];
}
return code;
}
///
/// 产生验证图片
///
///
public void CreateImages(string code)
{
//创建一个Bitmap新实例
Bitmap image = new Bitmap(60, 20);
Graphics g = Graphics.FromImage(image);
WebColorConverter ww = new WebColorConverter();
//清楚整个绘图面,并以制定颜色填充
g.Clear((Color)ww.ConvertFromString("#FAE264"));
Random rand = new Random();
//画图片的背景噪音线
for (int i = 0; i < 12; i++)
{
int x1 = rand.Next(image.Width);
int x2 = rand.Next(image.Height);
int y1 = rand.Next(image.Width);
int y2 = rand.Next(image.Height);
g.DrawLine(new Pen(Color.LightGray), x1, y1, x2, y2);
}
//新建字体
Font font = new Font("Arial", 15, FontStyle.Bold | FontStyle.Italic);
System.Drawing.Drawing2D.LinearGradientBrush brush = new System.Drawing.Drawing2D.LinearGradientBrush(new Rectangle(0, 0, image.Width, image.Height), Color.Blue, Color.Gray, 1.2f, true);
g.DrawString(code, font, brush, 0, 0);
//画图片的前景噪音
for (int i = 0; i < 10; i++)
{
int x = rand.Next(image.Width);
int y = rand.Next(image.Height);
image.SetPixel(x, y, Color.White);
}
//画图片的边框线
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.Gif);
Response.ClearContent();
Response.ContentType = "image/Gif";
Response.BinaryWrite(ms.ToArray());
g.Dispose();
image.Dispose();
}
#region Web 窗体设计器生成的代码
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: 该调用是https://www.360docs.net/doc/263016151.html, Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}
///
/// 设计器支持所需的方法- 不要使用代码编辑器修改
/// 此方法的内容。
///
private void InitializeComponent()
{
this.Load += new System.EventHandler(this.Page_Load);
}
#endregion
}
以上是CreateImage.aspx文件的后台代码,完成上述方法后,在页面里调用方法,只需要添加,即可显示生成的验证码图片,每次刷新都会随机产生不同的验证码,如下:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="CreateImage.aspx.cs" Inherits="CreateImage" %>
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Drawing;
public class Rand
{
public string rand;
Random ran = new Random(https://www.360docs.net/doc/263016151.html,lisecond);//加个随机数种子
public Rand()
{
for (int i = 0; i < 4; i++)
{
this.rand += ran.Next(0, 16).ToString("x1");
}
HttpContext.Current.Session.Add("code",this.rand);
}
}
public partial class image : System.Web.UI.Page
{
Random ran = new Random(https://www.360docs.net/doc/263016151.html,lisecond);//加个随机数种子public int x,y,p,q;
public int r, g, b;
protected void draw()
{
Rand R = new Rand();
Session["image"] = R.rand;
Bitmap image = new Bitmap(100, 50);//创建画布;
Graphics g = Graphics.FromImage(image);//创建画图对象;
g.Clear(Color.Black);
SolidBrush blackbrush = new SolidBrush(Color.White);
Font font = new Font("Verdana", 14);
for (int i = 0; i < 100; i++)
{
this.x = ran.Next(0, 100);
this.y = ran.Next(0, 50);
this.p = ran.Next(0, 100);
this.q = ran.Next(0, 50);
this.r = ran.Next(0, 256);
this.g = ran.Next(0, 256);
this.b = ran.Next(0, 256);
Pen pen = new Pen(Color.FromArgb(this.r, this.g, this.b));
g.DrawLine(pen, this.x, this.y, this.x, this.y + 1);
//g.DrawLine(pen, this.x, this.y, this.x + this.p, this.y + this.q);
}
g.DrawString(R.rand, font, blackbrush, 20, 10);
Response.ContentType = "image/jpeg";
image.Save(Response.OutputStream,
System.Drawing.Imaging.ImageFormat.Jpeg);//输出图片;
blackbrush.Dispose();//释放画笔;
g.Dispose();//释放绘图对象;
image.Dispose();//释放图形对象;
}
protected void Page_Load(object sender, EventArgs e) {
draw();
}
}
javascript常用代码大全
Javascript常用代码大全 //打开模式对话框
//返回模式对话框的值 function okbtn_onclick() { var commstr=''; window.returnValue=commstr; window.close() ; } okbtn_onclick() //全屏幕打开IE 窗口 var winWidth=screen.availWidth ; var winHeight=screen.availHeight-20; window.open("main.aspx","surveyWindow","toolbar=no,wid th="+ winWidth +",height="+ winHeight +",top=0,left=0,scrollbars=yes,resizable=yes,center:yes,statu sbars=yes"); //脚本中中使用xml function initialize() { var xmlDoc var xslDoc xmlDoc = new ActiveXObject('Microsoft.XMLDOM') xmlDoc.async = false; xslDoc = new ActiveXObject('Microsoft.XMLDOM') xslDoc.async = false; xmlDoc.load("tree.xml") xslDoc.load("tree.xsl") folderTree.innerHTML = xmlDoc.documentElement.transformNode(xslDoc) } 一、验证类 1、数字验证内 1.1 整数 1.2 大于0的整数(用于传来的ID的验证) 1.3 负整数的验证 1.4 整数不能大于iMax 1.5 整数不能小于iMin 2、时间类 2.1 短时间,形如(13:04:06) 2.2 短日期,形如(2003-12-05) 2.3 长时间,形如(2003-12-05 13:04:06) 2.4 只有年和月。形如(2003-05,或者2003-5) 2.5 只有小时和分钟,形如(12:03) 3、表单类 3.1 所有的表单的值都不能为空 3.2 多行文本框的值不能为空。 3.3 多行文本框的值不能超过sMaxStrleng 3.4 多行文本框的值不能少于sMixStrleng 3.5 判断单选框是否选择。 3.6 判断复选框是否选择. 3.7 复选框的全选,多选,全不选,反选 3.8 文件上传过程中判断文件类型 4、字符类 4.1 判断字符全部由a-Z或者是A-Z的字字母组成 4.2 判断字符由字母和数字组成。 4.3 判断字符由字母和数字,下划线,点号组成.且开头的只能是下划线和字母 4.4 字符串替换函数.Replace(); 5、浏览器类 5.1 判断浏览器的类型 5.2 判断ie的版本 5.3 判断客户端的分辨率 6、结合类 6.1 email的判断。 6.2 手机号码的验证 6.3 身份证的验证 二、功能类 1、时间与相关控件类 1.1 日历 1.2 时间控件 1.3 万年历 1.4 显示动态显示时钟效果(文本,如OA中时间) 1.5 显示动态显示时钟效果(图像,像手表) 2、表单类 2.1 自动生成表单 2.2 动态添加,修改,删除下拉框中的元素 2.3 可以输入内容的下拉框 2.4 多行文本框中只能输入iMax文字。如果多输入了,自动减少到iMax个文字(多用于短信发送) 3、打印类 3.1 打印控件 4、事件类 4.1 屏蔽右键 4.2 屏蔽所有功能键 4.3 --> 和<-- F5 F11,F9,F1 4.4 屏蔽组合键ctrl+N 5、网页设计类 5.1 连续滚动的文字,图片自动生成验证码图片的工具类,收藏起来备用。
[原]自动生成验证码图片的工具类,收藏起来备用。用法:直接调用其静态方法即可。 Map
C#生成随机验证码例子
C#生成随机验证码例子: 前端: 1
JSP生成验证码_源代码
jsp验证码实现源代码 (2011-10-16 11:11:40) 验证码原理:①首先随机生成数字或字母;②把生成的数字或字母保存在Session这次会话中;③最后,在登陆页面上把接收用户输入的验证码与生成的验证码相匹配,成功返回TRUE,失败则返回FALSE; 演示程序包括三个文件: 1.login.jsp:登录页面 2.code.jsp:生成验证码图片页面 3.check.jsp:验证结果 code.jsp <%@ page contentType="image/jpeg" import="java.awt.*, java.awt.image.*,java.util.*,javax.imageio.*" %> <% // 在内存中创建图象 int width=60, height=20; BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB); // 获取图形上下文 Graphics g = image.getGraphics(); // 设定背景色 g.setColor(new Color(0xDCDCDC)); g.fillRect(0, 0, width, height); //画边框 g.setColor(Color.black); g.drawRect(0,0,width-1,height-1); // 随机产生的认证码(4位数字) String rand =""+ (Math.random()*10000); rand = rand.substring(0,rand.indexOf(".")); switch(rand.length()) { case 1: rand = "000"+rand; break; case 2: rand = "00"+rand; break; case 3: rand = "0"+rand; break; default: rand = rand.substring(0,4); break; }
验证码自动_获取平台
验证码自动_获取平台 目录 1、验证码是什么 2、短信验证证码接收平台干什么用的 3、短信验证码接收平台的特点 4、短信验证码接收平台如何下载 5、短信验证码接收平台的功能 1、验证码是什么 所谓的验证码又称校验码、附加码,常祖政和卢晓倩在《计算机安全与维护》期刊中共同撰写的《Java Web中随机汉字扭曲验证码的实现》一文中提到,验证码的英文是CAPTCHA,就是将一串随机产生的数字或符号,生成一幅图片,图片里加上一些干扰象素,由用户肉眼识别其中的验证码信息,输入表单提交网站验证,验证成功后才能使用某项功能。 2、短信验证证码自动_获取平台干什么用的 现在越来越多的人都需要在网上注册账户,而注册账号又必须手机验证,但是很多人发现有些账户注册完几天后就开始莫名的接到多个陌生电话和短信,大部分都是以推销为目的,所以越
来越多的人都希望既能顺利完成注册又不会给自己带来不必要的麻烦,所以有人就开始解决这样的需求。 他们会联系卡商,通过卡商提供的号码,为注册账号验证提供号码,并把收到第三方的验证码内容显示在平台上,然后把验证码上的内容填入注册页面,就顺利完成注册, 这样陌生电话就不会打到你自己使用的电话上了。可以搜索“=y码=”得到详细的了解。 3、短信验证码自动_获取平台的特点 如今的互联网隐私被人们看的越来越重要,但是大多数网站在注册账户时、或要验证某些东西时强制用户输入自己的手机号接收验证码进行验证。这样对个人隐私造成很大的威胁。验证码接收平台就是用来解决这一问题的系统平台。用户可以利用验证码接收平台的手机号码来代接短信验证码进行验证,保护自己的隐私不受侵犯。每种验证码都有某种固定的规律。如发送号码,短信开头,结尾,关键字。验证码接收平台的特点: 1、全自动收发手机验证码,速度快 2、可以获取任意合法第三方网站手机短信验证码的系统平台。 3、解决注册多个帐号,手机认证的问题。 4、可获取的号码量多、验证码项目齐全,并拥有即时响应的服务。 5、集各类网站用户账号注册、绑定、验证、解封等手机验证码的收发功能于一身。
c#生成验证码的方法
新建一个WaterMark.ASHX文件,将如下代码Copy进去 <%@ WebHandler Language="C#" Class="WaterMark" %> using System; using System.Web; using System.Drawing; using System.Drawing.Drawing2D; using System.Web.SessionState; public class WaterMark : IHttpHandler, IRequiresSessionState // 要使用session必须实现该接口,记得要导入System.Web.SessionState命名空间 { public void ProcessRequest(HttpContext context) { string checkCode = GenCode(5); // 产生5位随机字符 context.Session["Code"] = checkCode; //将字符串保存到Session中,以便需要时进行验证 System.Drawing.Bitmap image = new System.Drawing.Bitmap(70, 22); Graphics g = Graphics.FromImage(image); try { //生成随机生成器 Random random = new Random(); //清空图片背景色 g.Clear(Color.White); // 画图片的背景噪音线 int i; for (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);
JavaScript 经典代码大全
代码一 1. oncontextmenu="window.event.returnvalue=false" 将彻底屏蔽鼠标右键
no |
怎样设计一个安全的验证码
怎样设计一个安全的验证码 来源:八方刷票公司https://www.360docs.net/doc/263016151.html, 最近公司发生了一些暴力破解密码的事件,很多用户的账号因此被盗。后来给所有登录入口都加上了验证码,但是仍然偶尔会出现了某些IP频繁登录的情况。是不是验证码被攻破了?本着相信科学的态度,因为以前也学过模式识别方面的东西,不妨从验证码识别技术开始来分析这些可能性。 起源 验证码英文叫CAPTCHA,全称是"Completely Automated Public Turing test to tell Computers and Humans Apart"。图灵测试(Turing test)是计算机科学的祖师爷阿兰.图灵提出来的,也是人工智能领域最著名的实验,意思就是:给你一个人A,一台计算机B,然后把另一个人(考官)放在另一个房间里,考官出题,然后通过A和B的回答,判断谁是计算机。如果考官分不出来哪个是计算机,B就算是通过了图灵测试,也就意味着拥有了真正意义的智能了。这是人工智能的终极目标,目前没有计算机通过呢。所以CAPTCHA的意思呢就是说,它是一种自动化的区别人和计算机的图灵测试。 CAPTCHA出现的意义是划时代的,它是目前防范各种机器人最有效的解决方案。但是就像人工智能界总是在不断发展,挑战图灵测试一样,验证码也受到一些模式识别技术的挑战。2008年的时候,yahoo发明的EZ-Gimpy宣布被破解,达到92%的破解率。同期的微软、google等公司的验证码破解率也达到20%~40%不等。那么不同的验证码为什么安全程度会有差异呢?差异到底在哪里?先从验证码识别的技术说起。 图1:EZ-Gimpy 验证码识别 目前大部分验证码都是文字的序列,因此现有的识别方法,大都来自OCR(光学字符识别)的技术。OCR用于印刷体扫描后文字的识别,一般分为三个步骤: 1、预处理 因为有些印刷文字会存在字迹不清、污点、颜色不统一等问题,所以在最开始都要对图像进行预处理。这些处理包括边缘检测、二值化等操作。边缘检测就是根据颜色和图形的特征,
Flash常用按钮代码大全
Flash按钮代码大全在2,0中制作 1、转下一帧并继续播放 on (release) { play(); } 2、转第三帧并播放 on (release) { gotoAndPlay(03);//数字是代表的帧数 stopAllSounds(); } 3、全屏播放 fscommand("fullscreen", "true"); 4、退出 on (release) { if (substring(_root._url, 8, 1) == "/") { fscommand("quit"); } else { getURL("javascript:window.close()"); } // end if } 5、返回第一帧 on (release) { gotoAndPlay(01); stopAllSounds(); }
FLASH脚本代码大全- Go to 跳转到指定的帧 - Play 播放 - Stop 停止 - Toggle High Quality 在高画质和低画质间切换 - Stop All Sounds 停止所有声音的播放 - Get URL 跳转至某个超联结 - FSCommand 发送FSCommand命令 - Load Movie 装载影片 - Unload Movie 卸载影片 - Tell Target 告知目标 - If Frame Is Loaded ..判断帧是否被完全载入 - On Mouse Event 鼠标事件 。其他Actions。包括: - break 跳出循环 - call 调用指定帧(一般喊有某个特定函数) - comment 注释 - continue 继续循环 - delete 删除一个对象(Object)中的变量