社区
C#
帖子详情
CSDN 登陆页面上的“校验码”是干嘛用的?
zahuifan
2004-10-27 11:06:08
CSDN 登陆页面上最近多了一个“校验码”,好像是一个图片,不知道是干什么用的?
是用来增加安全性的吗?
能详述其实现方法的大虾加30分。
...全文
267
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
打赏
举报
回复
谨防假冒的
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)
MD5加密有什么用?
md5加密很早就知道,加密 肯定是安全啊,直到真正用到了,才去想,在后台进行加密...https://blog.
csdn
.net/qq_27752831/article/details/52512909?utm_source=copy 如果MD5加密,是为了让密码变成位数更多更复杂的...
4-2020-新东方在线-前端-面试
1.和前端有哪些接触?2b还是2c?之前有系统学习过前端吗? 2.输入url到页面展示的过程? 3.缓存的方法? ...4.用过样式自适应?...9.用js做一个10s倒计时的功能 ...promise.all是
干嘛
的?了解promise的链式调用吗
什么是接口测试?怎样做接口测试?
形象来讲:我们天天用的手机,需要充电,那么我们需要给给手机插上充电器, 如果充电器的接口型号对不上,那么就不能进行充电, 我们调用接口也是一样,必须要根据接口设计文档来,不能自己随心所欲去调用。
4【计算机编程】到底该学哪种编程语言?各种不同的编程语言现在都用来
干嘛
?
本菜鸡经过调研,决定了硕士未来两年的学习路线,LeetCode用C++写,配合学习资料:1.卜东波算法视频课;2.两本学长的刷题总结pdf;3.清华大学本科数据结构(C++版)教材。课题正好也是C++和Java都要用到。然后课余...
前端面试知识点锦集
目录 四、Others部分 ...5、网页验证码是
干嘛
的,是为了解决什么安全问题。 6、请说出三种减少页面加载时间的方法。 7、你有用过哪些前端性能优化的方案? 8、说说什么是SQL注入?如何防止SQL注入? 9...
C#
110,534
社区成员
642,575
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章