验证码怎么写
1.验证码怎么写
用VB制作验证码生成器
由于现在破解技术的日益高明,简单图片很容易被识别,所以我们需要对图片进行一下“加密处理”。我的想法是用图片框输出验证码,再利用VB自带的画图函数将验证码描绘得奇怪一些,再随机添加乱七八糟的背景,从而只有人才能够识别,而暴力破解软件自然无能为力了。需要注意的是,我们的算法应该能使用户很容易分开验证码和背景色。
算法设计
1.窗体设计
启动VB6并新建一个标准EXE工程,布置好控件并设置好名称。
接着将两个图片框的AutoRedraw属性设置成True,txt_inp、cmd_browse的Enabled属性设置为False, txt_inp的Maxlength属性设置成10。然后单击“工程→部件”,勾选“Microsoft CommonDialog Control 6.0”。
2.算法
加密过程是程序的重点。在这里我们运用画线和画点函数来处理图片,在图片框上随机选两个点画直线,同时用随机函数确定它的颜色;再随机点一个点,同样用随机函数确定它的颜色。在这里我们还用随机取字体样式和背景色,不过要注意的是,背景和字体颜色的差别要搞大一些,由于每个RBG分量值越大颜色越深,因此我们用下面两条语句就可以增强颜色的对比度:
pic_las.ForeColor = RGB(Rnd * 255, Rnd * 255, Rnd * 255)
pic_las.BackColor = RGB(Rnd * 55, Rnd * 55, Rnd * 55)
绘制图像的具体的代码如下:
Sub AddPas()
On Error GoTo Err1
pic_las.Print Space(10 - Len(Result)); Result
Dim x, y, x1, x2, i As Integer
'随机决定输出字体样式
pic_las.FontItalic = Int(Rnd * 2)
pic_las.FontUnderline = Int(Rnd * 2)
pic_las.ForeColor = RGB(Rnd * 155 + 100, Rnd * 155 + 100, Rnd * 155 + 100)
'为验证码添加随机直线
For i = 1 To (Int(Rnd(1) * 8) + 1)
x = Int(Rnd * pic_las.Width): y = Int(Rnd * pic_las.Height)
x1 = Int(Rnd * pic_las.Width): Y1 = Int(Rnd * pic_las.Height)
pic_las.Line (x, y)-(x1, Y1), RGB(Rnd * 255, Rnd * 255, Rnd * 255)
Next i
'为验证码随机添加圆点
For i = 1 To (Int(Rnd(1) * 200) + 100)
pic_las.PSet (pic_las.Width * Rnd, pic_las.Height * Rnd), _
RGB(Rnd * 255, Rnd * 255, Rnd * 255)
Next i
'写入输出文件
If chk_file.Value = 1 Then
SavePicture pic_las.Image, txt_outfile.Text
MsgBox "验证码已经保存在:" & txt_outfile.Text, vbInformation
End If
Exit Sub
Err1: '产生了错误
MsgBox Err.Number & ":" & Err.Description, vbExclamation
End Sub
2.验证码该如何写才能通过
你好! 有可能你输入的验证码确实没有错误,如果有提示错误,也许是以下情况之一: 一、页面上的刷新问题 每刷新一次页面,验证码都会跟着变换,如果提示验证码错了系统便会更换验证码,这时可能页面还是原来验证码,你可能输入了两次相同的验证码,请看到验证码更换后再重新输入新验证码就可以了。
二、输入法的全角/半角问题 输入法的全角/半角输入的数字是不一样的,即全角数字1234和半角数字1234是不同的,新浪博客的验证码输入只支持半角数字,如果输入成全角数字,虽然数字是正确的但是还是不能通过验证。 祝你成功。
3.验证码怎么写
填写框旁边的图片显示的是什么 你就输入什么,不显示的话就刷新,看不清的话就再点一次图片,就会换一个。
有时候验证码的图片是个简单的小问题,比如3+2=?你就填5拉简单解释下,验证码是一种区分用户是计算机和人的公共全自动程序。可以防止:恶意破解密码、刷票、论坛灌水,有效防止某个黑客对某一个特定注册用户用特定程序暴力破解方式进行不断的登陆尝试,实际上是用验证码是现在很多网站通行的方式(比如招商银行的网上个人银行,百度社区),我们利用比较简易的方式实现了这个功能。