验证码三种实现方式
来源:互联网 发布:csdn设备运维算法 编辑:程序博客网 时间:2024/06/06 02:45
1. 点击图片验证码刷新
<img id="safecode" src="code.aspx" alt="看不清点击刷新" onclick="ReloadCode()" />
function ReloadCode()
{
var checkcode = document.getElementById("safecode");
checkcode.src = "CheckCode.aspx";
}
2. 点击链接验证码刷新
<img id="safecode" alt="" src="Code.aspx" />
<a href="javascript:reloadcode();" title="更换一张验证码图片">看不清,请换一张</a>
<script type="text/javascript">
function reloadcode() {
document.getElementById('safecode').src = 'code.aspx?' + Math.random();
}
</script>
验证码生成页面
code.aspx
namespace GuoNeng.Vide.Web
{
public partial class Code : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
BuildCode();
}
private void BuildCode()
{
Color[] strcolor = { Color.Red, Color.Blue, Color.Brown, Color.Black, Color.Tomato };
string[] strfont = { "华文中宋" };
Random rands = new Random();
Bitmap images = new Bitmap(80, 26); //图片大小
Graphics g = Graphics.FromImage(images);
Font f = new Font(strfont[0], 20); //字体大小
//笔刷填充色
Brush b = new SolidBrush(Color.Tomato);
Brush b2 = new SolidBrush(strcolor[rands.Next(0, strcolor.Length)]);
Brush b3 = new SolidBrush(Color.Red);
Brush b4 = new SolidBrush(Color.FromArgb(128, Color.Green));
g.Clear(Color.Wheat);
//线条颜色
Pen p = new Pen(Color.Red, 0);
Pen p2 = new Pen(Color.Turquoise, 0);
Random rand = new Random();
for (int i = 0; i < 40; i++)
{
int y = rand.Next(images.Height);
int x = rand.Next(images.Width);
//g.DrawLine(p, 0, y, images.Width, y);
g.DrawRectangle(p2, x, y, 1, 1);
}
g.DrawRectangle(p, 0, 0, images.Width - 1, images.Height - 1); //绘图区域
string strCode = rand.Next(1000, 10000).ToString();
Session["yanzhencode"] = strCode;
g.DrawString(strCode.Substring(0, 1), f, b, 2, -1);
g.DrawString(strCode.Substring(1, 1), f, b2, 19, -1);
g.DrawString(strCode.Substring(2, 1), f, b3, 37, -1);
g.DrawString(strCode.Substring(3, 1), f, b4, 50, -1);
System.IO.MemoryStream ms = new System.IO.MemoryStream();
images.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg);
Response.ClearContent();
Response.ContentType = "image/jpeg";
Response.BinaryWrite(ms.ToArray());
//Response.Cookies.Add(new HttpCookie("chne", "6780"));
g.Dispose();
images.Dispose();
}
private void ShuImg()
{
Response.ContentType = "image/*"; //设置发送头为图像数据
Response.Clear(); //清空发送数据
Random rand = new Random();
Stream stream = OpenFile(Server.MapPath("pic/" + rand.Next(1, 6).ToString() + ".jpg")); //打开文件流
Bitmap bit = new Bitmap(stream);
bit.Save(Response.OutputStream, System.Drawing.Imaging.ImageFormat.Jpeg);//保存到输出流中
stream.Close();
bit.Dispose();
Response.Flush(); //输出到客户端
}
}
}
- 验证码三种实现方式
- 验证码实现方式总结
- 验证码实现方式总结
- 短信验证的实现方式
- 验证码实现方式-------(js实现验证码):
- 验证码的实现方式-------(servlet实现验证码)
- struts2注解方式实现数据验证
- 图片验证码的Java实现方式
- jQuery Validate自定义验证方法实现方式
- 自动填充短信验证码实现方式
- Android验证码倒计时实现方式总结
- 自动填充短信验证码实现方式
- 用句柄方式实现域验证方式自动登录
- Spring Mvc Captcha验证码实现(附Servlet实现方式)
- java实现图片验证码全套实现方式
- 验证方式
- jquery实现验证码发送以及验证码的有效时间30分钟实现方式
- 在TOMCAT下实现基于表单验证的登陆方式
- 木马病毒工作原理
- ASCII 码
- Linux初探(七)---MySQL的安装
- Oh, Captain! My Captain! ---By Walt Whitman
- c#自动产生随机数的问题
- 验证码三种实现方式
- 80块钱的处女--女生看了想死男生看了会沉默的故事
- Test
- 设计中最常用的五类CSS选择器
- 毕业,回家,工作,盲目
- C#在WinXP和WinCE里获取应用程序当前路径的通用函数
- OGRE水面 折射反射
- J2ME游戏优化秘密
- ssd5,ssd7,ssd8的练习答案--全面!准确率高!