利用Dll實現通用密碼驗證框 (轉)

worldblog發表於2007-12-04
利用Dll實現通用密碼驗證框 (轉)[@more@]



      作者:夏青蟲

---- 在我們編制應用,常常需要提供一個密碼驗證框,對應用程式的使用者進行身份核對。

如果能有一個通用的密碼驗證框,便能夠為我們的工作節約不少的時間,更能使我們編制的程式小而快。



      



以下的程式為你提供了這樣的一個DLL。 

//檔名為CheckPassForm.dpr;
編譯此檔案生成CheckPasswordForm.dll
 library CheckPasswordForm;

 uses
 XcqCheck in 'XcqCheck.pas' {XcqForm};

 exports
 CheckPassword name 'CheckPassword';//dll入口

 begin
 end.


 //檔名為XcqCheck.pas
 unit XcqCheck;

 interface

 uses
 , Messages, SysUtils, Classes,
 Graphics, Controls, Forms, Dialogs,
 StdCtrls, Mask, Menus;

 type
 TXcqForm = class(TForm)
 XcqEdit: TMaskEdit;//密碼輸入框
 OkBtn: TButton;
 procedure OkBtnClick(Sender: T);
 end;

 var
 XcqForm: TXcqForm;
 Check: Boolean;//驗證輸入密碼的正確性
 function CheckPassword: Boolean;export;
//本dll檔案的關鍵實現

 implementation

 {$R *.DFM}

 procedure TXcqForm.OkBtnClick(Sender: TObject);
 begin
 if XcqEdit.Text = 'xcq' then
 Check := True;
 Close;
 end;

 function CheckPassword;export;
 begin
 Check := False;
 XcqForm := TXcqForm.Create(Application);
//建立密碼輸入框
 XcqForm.ShowModal;//顯示密碼輸入框; 
注意:不能用XcqForm.Show!
Result := Check;//返回給本dll的應用程式判斷
XcqForm.Free;//釋放本dll檔案所佔資源
 end;
 end.
---- 在呼叫以上dll中CheckPassword的應用程式中只需加入以下語句在implementation 後,

function CheckPassword: Boolean; external 'CheckPasswordForm.dll' name 'CheckPassword';在需

要進行密碼驗證的地方加入下面的條件語句就完全實現了密碼驗證的功能。 
 if CheckPassword then 
 begin
 ...//如Xcqquery.Open;
 end;
---- 上面的程式只是一個簡單的密碼驗證框,我們可以將密碼以寫入登錄檔或檔案的方式儲存,動態修

改,更可以利用算術演算法對密碼進行簡單的等,使要保密的資料更。 
---- 其實,上文中如何在dll中實現視窗讓我走了不少彎路,我覺得此法對大家更有意義,這是避免程式

龐大的一種有效方法,不妨試試。 

---- 以上程式在Windows98/Delphi3下編譯透過。歡迎大家批評指正。

 

 


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752043/viewspace-987786/,如需轉載,請註明出處,否則將追究法律責任。

相關文章