return
endif
pass=trim(ThisForm.Text2.value)
if empty(pass)
a=messagebox(“請輸入口令!”,0+48,“信息窗口”)
ThisForm.Text2.setfocus
return
endif
use klk
locate for klk.user_id=name
if found()=.f.
a=messagebox(“你不是指定用戶,請與係統管理員聯係!”,64,“提示信息”)
Thisform.release
else
ok=Thisform.decode(pass)
if ok=.t.
ThisForm.Label3.caption=“歡迎使用!”
wait window ‘歡迎使用!按任意鍵進入“係統維護模塊。”’
releasethisform
do formwh_wh
else
if m=3
m=m+1
ThisForm.Label3.caption=“口令錯,您無權使用”
a=messagebox(“對不起,您無權使用!”,0+48,“信息窗口”)
releasethisform
else
a=messagebox(“口令錯,請重新輸入!”,0+48,“信息窗口”)
ThisForm.Text2.value=“”
ThisForm.Text2.setfocus
m=m+1
endif
endif
endif
改變密碼的思路是:首先讀取用戶姓名,如果是新用戶則請用戶輸入新密碼,並記錄下獲得新密碼的時間;如果是老用戶,則讀取用戶舊密碼,將舊密碼進行解密運算並和口令庫內容比較,如果正確,請用戶輸入新密碼,並將新密碼通過解密運算存入口令庫,並記錄修改時間。主要代碼如下:
name=ThisForm.Text3.value
oldpass=ThisForm.Text1.value
newpass=ThisForm.Text2.value
if isblank(newpass)
a=messagebox(“請重新輸入新密碼!”,64,“信息提示”)
ThisForm.Text1.setfocus()
return
endif
success=thisform.decode(oldpass)
if _disibledevent=messagebox(“舊密碼已經修改完成,下次請使用新密碼!”,64,“信息提示”)
ThisForm.Command2.setfocus
return
在改變密碼的窗口(form)中,要定義“加密過程”和“解密過程”,方法如上所述。
以上是一個加密算法的主要思路和關鍵代碼,這個加密算法還可以進一步完善,如采用不同的函數進行運算。例如加入日期,使每個人每天的密碼都不一樣,用CDOW()函數作為鍵值的一部分,這樣安全性就更勝一籌。
世界上還沒有破解不了的密碼,隻是采用不同的設計方法,使破解的難度更大一些。矛與盾的較量永遠不會停止,一切都是運動中的一個暫時平衡。路在延續,而且一直延續……。(作者單位:長江工程職業技術學院)