标题利用随机码防止密码被窃取
栏目软件世界
作者刘红军
发布2000年第20期
当前各种应用软件中普遍存在密码不安全的问题。一般软件的密码输入界面是通过设置文本框的属性,使输入文本显示为“*”,避免密码的直接显示。其实这种保护是很脆弱的,现在已经有很多办法可以突破这种保护。本文介绍一种在VB中利用随机数输入密码的方法,使同一个密码每次输入后,用relevation1.1和其他窃取密码软件得到的都是不同的随机乱码。而真正的密码已瞒天过海。
首先,在窗体Form1中添加文本框Text1,按钮Command1,标签Label1,Label2,主要属性设置如下:
Form1的KeyPreview为True;
Text1的PasswordChar为“*”;
Command1的Caption为“确定”;
Label1和Label2的Caption为空,Autosize为True。
代码如下:
'通用声明:
Public x As Long
Public st As String
Private Sub Text1_GotFocus()
st = ""
End Sub
Private Sub Text1_KeyPress(KeyAscii As Integer)
st = st + Chr(KeyAscii)
'每按一下键,获得一个48到122之间的随机数,并将其对应的字符显示在文本框中
Randomize
x = Int((122 - 48 + 1) * Rnd + 48)
KeyAscii = Asc(Chr(x))
End Sub
Private Sub Command1_Click()
'Label1显示文本框中的随机乱码
Label1.Caption = Text1.Text
'Label2显示从键盘输入的真实字符
Label2.Caption = st
If st = "abcdefgh" Then
MsgBox "密码正确"
Else
MsgBox "密码错误"
End If
End Sub
本程序在Win98+VB6.0中文企业版运行通过。