我做了一个软件,在登陆的时候要输入用户名和密码,如果连续输错三次就退出。(10分)

  • 主题发起人 主题发起人 笨笨鹰
  • 开始时间 开始时间

笨笨鹰

Unregistered / Unconfirmed
GUEST, unregistred user!

我做了一个软件,在登陆的时候要输入用户名和密码,如果连续输错三次就退出。
但我如何使连续输错三次密码后必须经过一段时间后才可以再运行系统呢?
 
什么意思?没听懂,是过一段时间再运行你的软件,还是过一段时间再运行WINDOS?
 
办法很多,如做一个文件或在注册表里记录时间变化或使用次数,但以你的想法加密软件
太过简单,无法用于商业软件
 
判断时间,把时间写入表中。
 
在public里定义i;
登陆事件里i:=i+1;
if i=3 then
close;
 
我的看法:
1、在内存中建一块共享内存(在程序退出后还能存在,应该有的吧)
2、三次密码错误后,写入当前时间。否则释放共享内存
3、程序启动时检测这块内容,
如果大于当前时间,说明时钟被往前拨了,退出程序
如果小于当前时间,计算时间差,超过预定的时间,继续运行。
否则退出。
 
有必要吗?
 
三次出错后过写时间再运行,很有必要吗?不如锁死算了,用公钥和私钥两次加密解锁钥匙,
由Administrator掌握钥匙,不就达到保护软件的简单功能了
 
超出三次将时间存入注册表,然后在程序运行开始判断时间是不是你规定的时间,如果是
那么就不运行程序就行了。
if inputstime>=3 then
begin
将现在的时间写入注册表
end;
在程序运行开始读出数据,判断道没有到你规定的时间,如果没有到,就直接结束程序。
 
用记录时间的方法不太好吧?改改时间不就又可以运行了?
 
记录开机的时间吧,这样即使你修改日期也没用啊。不过你得偷偷运行一个开机时间的
记录程序。:(
 
hoho,记录开机的时间,不必运行额外的程序。
记得有一个API可以取得开机以来过了多少个时间片。
 
啊,差点忘记了。如果是数据库应用程序,可以记录到数据库中。
 
哦,我做的是个人事系统,是我的毕业设计。因为答辩的老师比较注重安全性,所以才有
这个想法,有没有比较好的方法呢。楼上几个老大说的好象都不太可行啊。
 
一段时间后才可以再运行系统呢???
什么系统?那个系统?。。先说清楚!!。。。。
说清楚你的要求。。。
 
procedure TForm1.Button1Click(Sender: TObject);
var
results:variant;
begin
count:=count+1;{计数加1}
results:=table1.Lookup('name',edit1.text,'password');{检索数据库中对应用户名的密码项}
if results=edit2.Text then
showmessage('密码确认,即将进入[:)]系统'){如果对应相同则进入,此处只是示例,所以只是简单说明密码确认}
else
begin
showmessage('错误的用户名或密码');{密码不确认}
if (count=3) then
close;{三次输入错误,退出}
end;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
close;
end;


procedure TForm1.FormCreate(Sender: TObject);
begin
table1.Active:=true;
count:=0
end;

end.
 
接受答案了.
 
后退
顶部