社区
C#
帖子详情
CSDN 登陆页面上的“校验码”是干嘛用的?
zahuifan
2004-10-27 11:06:08
CSDN 登陆页面上最近多了一个“校验码”,好像是一个图片,不知道是干什么用的?
是用来增加安全性的吗?
能详述其实现方法的大虾加30分。
...全文
254
21
打赏
收藏
微信扫一扫
点击复制链接
分享
下载分享明细
分享
举报
写回复
21 条
回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
HuaEr2001
2004-10-28
安全性的
打赏
举报
回复
赞
hnahzx
2004-10-28
gz
打赏
举报
回复
赞
xinshaw
2004-10-28
是啊
打赏
举报
回复
赞
cs920
2004-10-28
不管有没有人破了。。。它的目地是防止恶意登陆。
打赏
举报
回复
赞
wjcking
2004-10-28
gz
打赏
举报
回复
赞
fellowcheng
2004-10-27
参观
打赏
举报
回复
赞
hivak47
2004-10-27
增加安全性。
打赏
举报
回复
赞
eagle128
2004-10-27
呵,楼上的都很厉害。
打赏
举报
回复
赞
pollyan
2004-10-27
谨防假冒的
打赏
举报
回复
赞
yaopeng117
2004-10-27
为了防止恶意的登陆软件。
打赏
举报
回复
赞
tingpig
2004-10-27
ASP.Net实现验证码
-----------------------------------start----------------------------------------------
using System.Drawing;
using System.Drawing.Imaging;
private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
//RndNum是一个自定义函数
string VNum=RndNum(4); //这里的数字4代表显示的是4位的验证字符串!
Session["VNum"]=VNum;
ValidateCode(VNum);
}
//生成图像函数
private void ValidateCode(string VNum)
{
int Gheight=(int)(VNum.Length * 11.5);
//gheight为图片宽度,根据字符长度自动更改图片宽度
System.Drawing.Bitmap Img = new System.Drawing.Bitmap(Gheight,20);
Graphics g = Graphics.FromImage(Img);
g.DrawString(VNum,new System.Drawing.Font("Arial",10),new System.Drawing.SolidBrush(Color.Red),3,3);
//在矩形内绘制字串(字串,字体,画笔颜色,左上x.左上y)
System.IO.MemoryStream ms=new System.IO.MemoryStream();
Img.Save(ms,System.Drawing.Imaging.ImageFormat.Png);
Response.ClearContent(); //需要输出图象信息 要修改HTTP头
Response.ContentType="image/Png";
Response.BinaryWrite(ms.ToArray());
g.Dispose();
Img.Dispose();
Response.End();
}
//生成随机数函数中从Vchar数组中随机抽取
//字母区分大小写
public string RndNum(int VcodeNum)
{
string Vchar = "0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,W,X,Y,Z" ;
string[] VcArray = Vchar.Split(',') ;
string VNum = "" ;//由于字符串很短,就不用StringBuilder了
int temp = -1 ;//记录上次随机数值,尽量避免生产几个一样的随机数
//采用一个简单的算法以保证生成随机数的不同
Random rand =new Random();
for ( int i = 1 ; i < VcodeNum+1 ; i++ )
{
if ( temp != -1)
{
rand =new Random(i*temp*unchecked((int)DateTime.Now.Ticks));
}
//int t = rand.Next(35) ;
int t=rand.Next(35);
if (temp != -1 && temp == t)
{
return RndNum( VcodeNum );
}
temp = t ;
VNum += VcArray[t];
}
return VNum ;
}
-----------------------------------end--------------------------------------------
下面是Login.Aspx在在调用提交按钮的响应事件中
public void doit(object sender, System.EventArgs e)
{
if(Page.IsValid)
{
string VNum;
VNum=Session["VNum"].ToString();
ViewState["VNum"]=VNum;
if(this.Vcode.Text==ViewState["VNum"].ToString())
{
Hover.Manage.CheckLogin obj=new Hover.Manage.CheckLogin();
string name=username.Text;
string password=FormsAuthentication.HashPasswordForStoringInConfigFile(pass.Text.ToString(),"md5");
if(!obj.checklogin(name,password))
{
Response.Redirect("../Error.aspx?action=Errorlogin");
Response.End();
return;
}
else
{
Session.Add("adminname",name);
Session.Add("adminpass",password);
Response.Redirect("Default.aspx");
Response.End();
return;
}
}
else
{
Response.Write("<script>alert(\"请输入正确的附加码!\");</script>");
}
}
}
如果提交过来的验证字符串正确就验证是否是合法用户!
否则弹出提示返回登陆页!你也可以简化此页!
if(this.Vcode.Text==ViewState["VNum"].ToString())
{
Response.Write("验证码正确");
}
else
{
Response.Write("验证码错误!");
}
打赏
举报
回复
赞
Ayuann
2004-10-27
shuker(我是一只小花猪)说的没错,的确是增加软件模拟登录使用的安全机制
打赏
举报
回复
赞
hanbinghai
2004-10-27
同意楼上
打赏
举报
回复
赞
burnyxu
2004-10-27
好象是这样:
用来防止因为恶意的客户端程序连续注册而大量消耗服务端资源,校验码是随机生成的(可能保存在数据库中),用图片数字比文本数字更加安全,不容易被读出来,好象吧.
打赏
举报
回复
赞
gesnpt
2004-10-27
增加安全性
打赏
举报
回复
赞
Tomgus
2004-10-27
主要是防止非人为的登陆操作 比如向你的服务器写垃圾信息 这个是芝加哥梅隆大学
开发的Captcha方法 这种方法提出一种方案,使人能够识别,机器却很难识别。但是
一般验证码还需要一些背景的干扰。因为已经有OCR技术(光学字符识别)能够辨别图片
中的验证字符
打赏
举报
回复
赞
shuker
2004-10-27
是用来增加安全性的,可以防止用软件模拟登陆来破解用户密码
打赏
举报
回复
赞
ddggggdd
2004-10-27
hehe
打赏
举报
回复
赞
速马
2004-10-27
要是有OCR识别算法的话这种东西其实也是形同虚设...
打赏
举报
回复
赞
张海霖
2004-10-27
没什么用,懒猫已经破解了。
打赏
举报
回复
赞
加载更多回复(1)
相关推荐
4【计算机编程】到底该学哪种编程语言?各种不同的编程语言现在都
用
来
干嘛
?
本菜鸡经过调研,决定了硕士未来两年的学习路线,LeetCode
用
C++写,配合学习资料:1.卜东波算法视频课;2.两本学长的刷题总结pdf;3.清华大学本科数据结构(C++版)教材。课题正好也是C++和Java都要
用
到。然后课余...
Spring Security系列(33)- Spring Security Oauth2之授权
页面
源码分析及使
用
详解
之前分析了auth_client_details 表scope、resource_ids、authorities这些字段,最后分析下autoapprove 这个是
干嘛
的。 配置autoapprove为true 首先我们配置autoApprove为true。 然后采
用
授权码进行访问,发现没有...
网页前端基础三:JSP技术
JSP实际
上
就是Servlet JSP这门技术的最大的特点在于,写jsp就像在写html,但它相比html而言,html只能为
用
户提供静态数据,而Jsp技术允许在
页面
中嵌套java代码,为
用
户提供动态数据 不管是JSP还是Servlet,...
一道面试题是如何引发深层次的灵魂拷问?
一、前言有这么一道面试题,如下:面试题:请详细介绍一下从输入 URL 到
页面
加载完成的过程?这道题的覆盖面可以非常广,很适合作为一道承载知识体系的题目。每一个前端人员,如果要往更高阶发展...
表单验证框架validation的使
用
总结
validation的使
用
总结
发帖
C#
微信扫一扫
点击复制链接
分享社区
下载分享明细
10.8w+
社区成员
64.2w+
社区内容
.NET技术 C#
社区管理员
加入社区
帖子事件
创建了帖子
2004-10-27 11:06
社区公告
让您成为最强悍的C#开发者