社区
C#
帖子详情
CSDN 登陆页面上的“校验码”是干嘛用的?
zahuifan
2004-10-27 11:06:08
CSDN 登陆页面上最近多了一个“校验码”,好像是一个图片,不知道是干什么用的?
是用来增加安全性的吗?
能详述其实现方法的大虾加30分。
...全文
313
21
打赏
收藏
CSDN 登陆页面上的“校验码”是干嘛用的?
CSDN 登陆页面上最近多了一个“校验码”,好像是一个图片,不知道是干什么用的? 是用来增加安全性的吗? 能详述其实现方法的大虾加30分。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
21 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
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
打赏
举报
回复
谨防假冒的
alwaysinsist
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)
CSDN
登陆
校验码
模式识别程序
博主下班后快速编写程序证明图片验证码脆弱,因时间仓促未用HTTP协议从
CSDN
登录页下载校验图片,需手工保存为GIF格式,仅支持当前
CSDN
校验码
图片。后续有时间会改进算法,使其更模糊,还可能移植为COM组件或PHP代码供ASP或PHP调用。
带有
校验码
的登陆实现(一)
本文介绍了验证码的基本概念及其在防止机器人批量注册、登录等方面的应用。详细分析了几种常见验证码的设计方式,包括不同格式的图片验证码,并探讨了它们的有效性和破解难度。
将
CSDN
的登陆框插入我的个人主页
此博客展示了一个
CSDN
登录表单,包含用户名、密码、
校验码
输入框等。使用JavaScript实现表单提交功能,如__doPostBack函数处理事件提交,还有表单验证逻辑,确保必填项填写。同时提供注册和找回密码的链接。
playwright+DdddOcr实现带
校验码
的web登录(附源码)
本文分享使用playwright+DdddOcr实现带
校验码
的web方式登录的代码。介绍了代码中各参数含义,如登录的url、用户名等,还给出了相关参考文章链接,帮助读者了解DdddOcr实用细节和playwright更多知识。
C#
111,129
社区成员
642,534
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章