实践网页图片验证码

摘要:实践网页图片验证码

我们在浏览许多网站时常会看到图片验证码这种东西,例如:BLOG回文、留言板...等等。笔者今天要跟各位介绍如何实践网页图片验证码,下面这种方式是目前最常见到的,各位也可自行搭配AJAX来使用。

? 首先建立一个产生验证码的网页,我们先将它命名为ValidateCode.aspx,其产生验证码图片的程序如下:

?? ValidateCode.aspx.cs

???15?protected void Page_Load(object sender, EventArgs e)

???16???? {

???17???? ??? //Validate Code

???18???? ??? string[] Code ={ "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M",

???19???? ??? ??? ??? ??? ??? "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z",

???20???? ??? ??? ??? ??? ??? "0", "1", "2", "3", "4", "5", "6", "7", "8", "9" };

???21???? ??? string strRd = string.Empty;

???22

???23???? ??? Random rd = new Random(unchecked((int)DateTime.Now.Ticks));

???24???? ??? Bitmap Bmp = new Bitmap(80, 25);? //建立实例图档并设定大小

???25???? ??? Graphics Gpi = Graphics.FromImage(Bmp);

???26???? ??? Font Font1 = new Font("Verdana", 14, FontStyle.Italic);

???27

???28???? ??? for (int i = 0; i

???29???? ??? {

???30???? ??? ??? strRd += Code[rd.Next(35)];

???31???? ??? }

???32

???33???? ??? Pen PenLine = new Pen(Brushes.Red, 1);? //实例化笔刷并设定颜色、大小(画X,Y轴用)

???34???? ??? Gpi.Clear(Color.White);??? //设定背景颜色

???35???? ??? Gpi.DrawLine(PenLine, 0, rd.Next(80), 90, rd.Next(25));

???36???? ??? Gpi.DrawString(strRd, Font1, Brushes.Black, 0, 0);

???37

???38???? ??? for (int i = 0; i

???39???? ??? {

???40???? ??? ??? int RandPixelX = rd.Next(0, 80);

???41???? ??? ??? int RandPixelY = rd.Next(0, 25);

???42???? ??? ??? Bmp.SetPixel(RandPixelX, RandPixelY, Color.Blue);

???43???? ??? }

???44

???45???? ??? Session["ValidateCode"] = strRd;??? ??? //将验证码存入Session以便稍后进行验证

???46???? ??? Bmp.Save(Response.OutputStream, System.Drawing.Imaging.ImageFormat.Gif);

???47???? }

  • 实际运行ValidateCode.aspx将产生下面这张图片

?????????????????????

接着我们来测试图片验证的功能,请在您的Default.aspx加入TextBox控件、Button控件及一张图片(如下图)。

Default.aspx

???

????ValidateCode:

???

????

?

Default.aspx.cs

??

?? 17???? protected void Button1_Click(object sender, EventArgs e)

???18???? {

???19???? ??? if (TextBox1.Text == (string)Session["ValidateCode"])

???20???? ??? ??? Response.Write("OK");

???21???? ??? else

???22???? ??? ??? Response.Write("ERROR");

???23???? }

  • OK...现在来执行看看Default.aspx

???????

????????请在验证图片上按下【鼠标右键】->【内容】,我们可以很清楚看到验证图片的来源是ValidateCode.aspx

???????

??????? 这时候输入正确的验证码就会出现【OK】如果输入错误的验证码就会出现【ERROR

????? ?OR

??????? 图片验证码的部分大概就是这样,图片的【字体】、【背景】、【大小】...等等,各位可自行发挥运用。

&amplt;a href=&quothttp://www.facebook.com/sharer.php&quot _cke_saved_href=&quothttp://www.facebook.com/sharer.php&quot type=&quotbutton_count&quot name=&quotfb_share&quot&ampgt;分享&amplt;/a&ampgt;

原文:大专栏  实践网页图片验证码

原文地址:https://www.cnblogs.com/petewell/p/11516460.html

时间: 2024-10-12 07:28:35

实践网页图片验证码的相关文章

Java Web:使用Servlet生成网页随机图片验证码

最近在学习Java Web开发,做了一个生成网页随机图片验证码的例子,在此记录. 一.新建Servlet项目: 在MyEclipse中新建Servlet项目,一步步操作就OK,在此不再赘述.建好之后文件目录树如下图: 二.源代码实现: (1)java代码: package com.zdt.identity; import java.awt.Color; import java.awt.Font; import java.awt.Graphics2D; import java.awt.image.

struts向网页输出图片验证码

前言:今天做个功能需要展示图片到页面,并不是下载,在网上搜了老半天,大部分都是下载,有的话也是只能在IE下进行输出,其它浏览器就都是下载了. Action代码: [java] view plain copy print? public String processImage(){ String key = ServletActionContext.getRequest().getParameter("key"); if(StringUtils.isEmpty(key)){ return

插拔式自定义图片验证码(开源)

1:第一种自定义验证码(推荐) 1 前端: <img id ="img" src="/路由/"> <span {{ dict.error }}</span> 2 前端js刷新验证码: 3 <script> 4 img =document.getElementById("img"); 5 img.onclick = function () { 6 img.src = img.src + "?&qu

一个咸鱼的Python爬虫之路(三):爬取网页图片

学完Requests库与Beautifulsoup库我们今天来实战一波,爬取网页图片.依照现在所学只能爬取图片在html页面的而不能爬取由JavaScript生成的图.所以我找了这个网站http://www.ivsky.com 网站里面有很多的图集,我们就找你的名字这个图集来爬取 http://www.ivsky.com/bizhi/yourname_v39947/ 来看看这个页面的源代码: 可以看到我们想抓取的图片信息在<li> 里面然后图片地址在img里面那么我们这里可以用Beautifu

水印、图片验证码

(貌似这个验证码不能获取,假设设置一个隐藏的label来记录又失去了他的意义) 一.水印 1.画布 System.Drawing.Image img = System.Drawing.Image.FromStream(FileUpload1.FileContent); 2.创建绘制对象,告诉它往哪张图片上绘制 Graphics g = Graphics.FromImage(img); 3.绘制的内容 string s = "www.itnba.com"; 4.绘制的字体 Font f

水印,图片验证码

加水印: 1.画布 2.笔.颜色.从那开始画.画的内容 获取新的路径 保存新的图片 设置新图片为背景 图片验证码: 例如画一个abcd 100*5o大小.黑体30像素.红色的 为了防止被抓去,跳转到另一个页面执行,需要把照片用流输出回去 完整验证码 验证:

图片验证码

1.首先创建一个web窗体,只使用后台部分,生成验证码,并输出图片流跟图片验证码的字符,在使用验证码的窗体中图片控件直接指向这个窗体 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 partial class Y

java web中图片验证码功能实现

用户在注册网站信息的时候基本上都要数据验证码验证.那么图片验证码功能该如何实现呢? 大概步骤是: 1.在内存中创建缓存图片 2.设置背景色 3.画边框 4.写字母 5.绘制干扰信息 6.图片输出 废话不多说,直接上代码 package com.lsgjzhuwei.servlet.response; import java.awt.Color; import java.awt.Font; import java.awt.Graphics; import java.awt.image.Buffer

基于spring mvc的图片验证码实现

基于spring mvc的图片验证码实现 标签: springmvcspring mvc验证码验证码验证 2016-01-28 10:49 8015人阅读 评论(4) 收藏 举报  分类: 表单处理 版权声明:本文为博主原创文章,未经博主允许不得转载. 本文实现基于spring mvc的图片验证码,分后台代码和前端页面的展现以及验证码的验证. 首看后台实现代码: @RequestMapping({"authCode"}) public void getAuthCode(HttpServ