---- DelphiµÄMIDAS¿Ø¼þΪ±àÐ´ÍøÂç³ÌÐòÌṩÁËÊ®·Ö·½±ãµÄÊֶΡ£ÀûÓÃÕâЩ¿Ø¼þ£¬¿ÉÒÔ±àд¾ÖÓòÍøÉϵĿͻ§»ú£¯·þÎñÆ÷Ìåϵ³ÌÐò£¬Ò²ÄÜ·½±ãµØÔÚInternetÉÏ´´½¨·ÖÉ¢´¦ÀíµÄÓ¦Óá£
---- ÍøÂç³ÌÐòµÄÒ»¸öÖØÒªÎÊÌâÊǰ²È«ÐÔ¿¼ÂÇ¡£Ò»Ð©Ãô¸ÐÊý¾ÝÔÚÍøÉÏ´«ËÍ£¬ºÜÓпÉÄܱ»ÈË·Ç·¨À¹½ØÒÔÔì³É²»±ØÒªµÄËðʧ¡£ÔÚʵ¼ÊµÄ±à³Ì¹ý³ÌÖУ¬ÎÒ²ÉÈ¡ÁËһЩÓÐЧµÄ·À·¶´ëÊ©£¬ÔÚ´Ë×÷Щ¼òµ¥µÄ½éÉÜ¡£
---- Ò»¡¢ ÔÀí
---- Ŀǰ½øÐÐÊý¾Ý¼ÓÃܵķ½·¨ºÜ¶à£¬¶ÔÊý¾ÝµÄ±£»¤Æðµ½Ò»¶¨µÄ×÷Óᣵ«Èç¹û²ÉÓù̶¨µÄÃÜÔ¿»òÊÇÃÜÔ¿ËæÊý¾ÝÒ»Æð´«ËÍ£¬Ôò¾ù²»ÄÜ´ïµ½ÁîÈËÂúÒâµÄ±£ÃÜЧ¹û¡£ÔÚʵ¼ù¹ý³ÌÖУ¬ÎÒÃþË÷³öÁËÒ»Ìס°ÇëÇó£Ó¦´ð¡±Ä£Ê½µÄËæ»úÃÜÔ¿·½·¨£¬¶ÔÃÜÂëºÍÊý¾ÝµÄ±£ÃÜЧ¹û¶¼ÁîÈËÊ®·ÖÂúÒâ¡£
---- µ±¿Í»§¶Ë³ÌÐòÆô¶¯²¢ÆóͼÓë·þÎñÆ÷³ÌÐò½¨Á¢Á¬½Óʱ£¬¿Í»§³ÌÐò´Ó·þÎñÆ÷¶ËÈ¡µÃÒ»¸öÓÉ·þÎñÆ÷³ÌÐò²úÉúµÄËæ»ú×Ö´®£¬ÏµÍ³½«ÒÔ´Ë×Ö´®ÎªÃÜÔ¿À´´«ËÍÓû§µÇ¼ÃÜÂëºÍÊý¾Ý¡£ÓÉÓÚÃÜÔ¿ÓÉ·þÎñÆ÷³ÌÐòËæ»ú²úÉú£¬¿Í»§Ã¿´ÎµÇ¼ʱÃÜÔ¿¾ù²»Ïàͬ£¬Òò´Ë´ó´ó¼õÉÙÁËÃÜÂë±»À¹½Øµ¼ÖÂÊý¾Ý±»ÇԵĿÉÄÜÐÔ¡£
---- ·þÎñÆ÷¶Ë¿ÉÒÔÔÚÔ¶³ÌÊý¾ÝÄ£¿éÖÐÒý³öÒ»¸ö×Ô¶¨Òå½Ó¿Ú£¬¸Ã½Ó¿Ú·µ»ØÒ»¸öËæ»ú×Ö´®¡£Ô¶³ÌÊý¾ÝÄ£¿éÒª¼Ç¼¸Ã×Ö´®×÷ΪºóÐø´¦ÀíµÄÃÜÔ¿¡£Ëæ»ú×Ö´®µÄ²úÉú·¨¿ÉÒÔ¶àÖÖ¶àÑù£¬×î¼òµ¥µÄ·½·¨ÊÇÓÃRandom()º¯Êý²úÉúÒ»¸öËæ»úÊýºóÔÙÓÉ´ËÊýÓÃFormat()º¯Êý»òIntToStr()²úÉúÒ»¸ö×Ö·û´®¡£
---- ¶þ¡¢ Óû§µÇ¼´ëÊ©
---- ΪÁË·ÀÖ¹³ÌÐò±»·Ç·¨µ÷ÊÔ´Ó¶øÐ¹Â¶ÃÜÂ룬±ØÐ뽫¿Í»§µÄµÇ¼ÐÅÏ¢ÔÚ·þÎñÆ÷¶Ë´¦Àí£¬Ò²¿ÉÒÔרÃÅÔö¼ÓÒ»¸ö°²È«²ã¸ºÔð¿Í»§µÄµÇ¼¡£¿Í»§µÄµÇ¼ÐÅÏ¢´¢´æÔÚ¿Í»§×ÊÁϱíÖУ¬°üÀ¨Óû§Ãû¡¢ÃÜÂ롢ȨÏÞµÈÐÅÏ¢¡£
---- ¿Í»§³ÌÐòµÇ¼ʱ£¬Ïȵ÷Ó÷þÎñÆ÷³ÌÐòµÄ½Ó¿Ú»ñµÃÃÜÔ¿×Ö´®£¬²¢ÓôËÃÜÔ¿¶ÔÓû§ÊäÈëµÄÓû§ÃûºÍÃÜÂë½øÐмÓÃܲ¢Ïò·þÎñÆ÷·¢Ë͵ǼÐÅÏ¢¡£¼ÓÃÜËã·¨¿ÉÒÔÊÇDESËã·¨»òÆäËüÓÐЧËã·¨¡£·þÎñÆ÷½Óµ½µÇ¼ÐÅÏ¢ºó£¬ÏÈÓÃÏÈǰ²úÉú²¢¼Ç¼µÄËæ»úÃÜÔ¿¶ÔµÇ¼ÐÅÏ¢½øÐнâÃÜ£¬ÔÙ½«½âÃܺóµÄÐÅÏ¢Óë´æ´¢µÄ¿Í»§×ÊÁϱíÖеÄÐÅÏ¢½øÐжÔÕÕ£¬´Ó¶øÅжϿͻ§ÐÅÏ¢ÊÇ·ñºÏ·¨ÒÔ¼°¸Ã¿Í»§ÏíÓеÄÊý¾ÝȨÏ޵ȡ£
---- ¸Ã¹ý³ÌµÄ¿Í»§¶Ë³ÌÐòÈçÏ£º
strKey:=myRemoteSever.GetKey();
{µ÷Ó÷þÎñÆ÷µÄ½Ó¿Ú»ñµÃËæ»úÃÜÔ¿}
UserName:=Ency(strUserName,strKey);
{¶ÔÓû§Ãû¼ÓÃÜ£¬Ency()Ϊ¼ÓÃÜËã·¨}
Password:=Ency(strPassword,strKey);
{¶ÔµÇ¼ÃÜÂë½øÐмÓÃÜ}
If myRemoteServer.LogIn(UserName,Password) then {怬}
Begin
{½øÐд¦Àí}
End;
·þÎñÆ÷¶ËµÄµÇ¼¹ý³ÌLogIn()ÈçÏ£º
strUserName:=DeEncy(UserName,strKey);
{¶ÔÓû§Ãû½âÃÜ£¬DeEncy()Ϊ½âÃÜËã·¨}
strPassword:=DeEncy(Password,strKey);
{¶ÔµÇ¼ÃÜÂë½âÃÜ}
{²éѯÊý¾Ý¿â}
if (Pass) then
Result:=true
Else
Result:=false;
---- ҪעÒâµÄÊÇ£¬ÔÚ·þÎñÆ÷³ÌÐòºÍ¿Í»§³ÌÐòÖУ¬StrKey¾ùÓ¦¶¨ÒåΪȫ³Ì±äÁ¿¡£
---- ΪÁË·ÀÖ¹¿Í»§×ÊÁÏ±í±»³ÌÐòÍâ´ò¿ª´Ó¶øÐ¹Â¶ÃÜÂ룬¿ÉÒÔ¶Ô¿Í»§×ÊÁϽøÐÐÒ»¶¨µÄ¼ÓÃÜ´ëÊ©£¬ÀýÈçPARADOX±í¿ÉÒÔÌí¼ÓPassword£¬·þÎñÆ÷³ÌÐòÔÚ·ÃÎʿͻ§×ÊÁϱíʱÏÈÌṩ¸ÃPassword¡£
---- Èý¡¢ Êý¾Ý´«ËÍ
---- ÔÚÍøÂç³ÌÐòÖУ¬Ò»Ð©Ãô¸ÐÊý¾ÝÔÚÍøÉÏ´«ËÍʱ±ØÐë¼ÓÃÜ¡£DelphiµÄMIDAS»úÖÆÌṩÁËÊý¾Ý¼ÓÃܵÄ;¾¶£¬¿ÉÒÔÔÚÊý¾Ý´«Íù¿Í»§¶Ë֮ǰ¶ÔһЩ×ֶνøÐмÓÃÜ£¬Ò²¿ÉÒÔÔÚ½ÓÊÕµ½¿Í»§¶ËµÄ¸üÐÂÊý¾ÝÇëÇóºó¶ÔÀ´×Ô¿Í»§¶ËµÄÊý¾ÝµÄÏàÓ¦×ֶνøÐнâÃܺó²ÅÏòÊý¾Ý¿â½øÐиüС£ÎªÁ˴ﵽЩĿµÄ£¬¿ÉÒÔÔÚ·þÎñÆ÷³ÌÐòµÄÔ¶³ÌÊý¾ÝÄ£¿éÖмÓÈëÒ»¸öTprovider»òÊÇTdataSetProvider¶ÔÏ󣬲¢½«´Ë¶ÔÏóµÄDataSetÊôÐÔÖÃΪҪ´¦ÀíµÄÊý¾Ý¼¯¡£ÔÚTproviderµÄOnGetDataʼþÖмÓÈëÈçÏ´úÂ룺
with DataSet do
begin
while not EOF do
begin
Edit;
SensitiveData.AsString :=
Ency(SensitiveData.AsString,strKey);
{¶ÔÃô¸ÐÊý¾Ý¼ÓÃÜ}
Post;
Next;
end;
end;
---- ÒÔÉÏ´úÂë¿ÉÒÔ½«Ãô¸ÐÊý¾Ý¼ÓÃܺóÔÙËÍÍù¿Í»§³ÌÐò¡£
---- ͬÑù£¬ÔÚTproviderµÄOnUpdateDataʼþÖмÓÈëһЩ´¦Àí´úÂë±ã¿É¶Ô¿Í»§¶ËËÍÀ´µÄÊý¾Ý½øÐнâÃÜ¡£
---- ÒÔÉÏÖ»ÊǽéÉÜÁËÍøÂç³ÌÐò°²È«´ëʩʵÏÖµÄÒ»°ãÔÀí£¬ÔÚ´Ë»ù´¡ÉÏ£¬¿ÉÒÔÔö¼ÓÆäËü±£ÃÜ´ëÊ©£¬ÒÔ´ïµ½¸üºÃµÄ±£ÃÜЧ¹û¡£ÀýÈ磬¿Í»§³ÌÐò¿ÉÒÔÓÃÌØ¶¨µÄ¸¨ÖúÓ²¼þÉ豸À´Ôö¼Ó°²È«ÐÔ¡£ÔÚÖÇÄÜ¿¨Ó¦ÓóÌÐòÖУ¬¿Í»§³ÌÐòÔڵǼʱ²»½öÒªÇóÓû§ÊäÈëÓû§ÃûºÍÃÜÂ룬³ÌÐòͬʱ¼ì²éIC¶ÁдÆ÷ÖÐIC¿¨µÄÀàÐͼ°Ìض¨µÄÄÚÈÝ£¬ÕâÑù£¬¼ÈʹÃÜÂëй¶Á˲»»á±»ÈËðÃûµÇ¼¡£µ±È»£¬Èκΰ²È«´ëÊ©¶¼²»ÊǾø¶Ô°²È«µÄ£¬°²È«´ëÊ©»¹ÒªÓÐÑϸñµÄ±£ÃÜÖÆ¶È¼°Ê¹ÓÃÈËÔ±µÄ¸ß¶ÈµÄ±£ÃÜÒâʶ²ÅÄÜÕæÕýÆðµ½±£ÃÜ×÷Óá£