利用随机码防止密码被窃取

Author: 刘红军 Date: 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中文企业版运行通过。