VFP ·R¥ÎªÌªÀ°Ï ­º­¶ VFP ·R¥ÎªÌªÀ°Ï
¥»°Q½×°Ï¬° Visual Foxpro ·R¥ÎªÌ¸gÅç¥æ¬yªº¦a¤è, ½Ð¦h¦h§Q¥Î"·j´M"ªº¥\¯à, ¥ý¬d¬Ý¬Ý¦³µL«e¨Ò¥i´`, ¦pªGÁÙ¦³¤£À´ªº¦Aµo°Ý. ³¡¥÷¥DÃD¦³ªþ¥[ÀÉ®×, ¶·¥ýµù¥U¦¨¬°ªÀ°Ï©~¥Á¤~¥i¥H¤U¸ü.
 
 ±`¨£°ÝÃD±`¨£°ÝÃD   ·j´M·j´M   ·|­û¦Cªí·|­û¦Cªí   ·|­û¸s²Õ·|­û¸s²Õ   ·|­ûµù¥U·|­ûµù¥U 
 ­Ó¤H¸ê®Æ­Ó¤H¸ê®Æ   µn¤JÀˬd±zªº¨p¤H°T®§µn¤JÀˬd±zªº¨p¤H°T®§   µn¤Jµn¤J

VFP¸ê®Æ¥[±K

 
µoªí·s¥DÃD   ¦^ÂÐ¥DÃD    VFP ·R¥ÎªÌªÀ°Ï ­º­¶ -> VFP °Q½×°Ï
¤W¤@½g¥DÃD :: ¤U¤@½g¥DÃD  
µoªí¤H ¤º®e
Ruey



µù¥U®É¶¡: 2003-03-12
¤å³¹: 1698
¨Ó¦Û: tunglo

²Ä 1 ¼Ó

µoªíµoªí©ó: ¬P´Á¤é ¤»¤ë 29, 2003 6:43 pm    ¤å³¹¥DÃD: VFP¸ê®Æ¥[±K ¤Þ¨¥¦^ÂÐ

Ķ¤å§@ªÌ­p­¸¬P /±ö¤lºô¯¸

Ãö©óVFP¸ê®Æ¥[±KªºÄ¶¤å

¥Ñ©ó¥»¤HE¤å¤ô¥­°¨°¨ªêªê¡Aªá¤F¤@­Ó¤¤¤È®É¶¡¡A¦ý¤]¤£ª¾¹D¤j®a¬Ý±o¶¶¤£¶¶¡A±N´NÂI§a¡A¤£¹L¦¹µ{¦¡¦bvfp8¤U¹B¦æ¥X¿ù¡A´£¥Ü¡§§ä¤£¨ìPARAMETER»y¥y¡¨¡AÁٽЭþ¦ì¤j«L¥X¤â¸Ñ¨M¤@¤U¡I
-------------------------------------------------------------------------------------------------------------------
VisualFoxProªº¦w¥þ: ±K½X¨Ï¥Îªk
§@ªÌ¡GDaryl Moore
¥X³B¡GMICROSOFT VISUAL FOXPRO ADVISOR ZONE
¤é´Á¡G2003¦~6¤ë16¤é
½Ķ¡G­p¬P­¸
VFPªº¦w¥þ¥D­nÃöÁä¦b©ó«OÅ@¸ê®Æ¡A¤U­±³o¨Ç§Þ³N±N¹ï¥[±K§AªºFoxPro¸ê®Æ¦³À°§U¡C

¦b¤j¦h¼Æªº±¡§Î¤U¡A§A¤£¥²¾á¤ß§A½s¼gªºµ{¦¡¦³³Q¯}¸Ñªº·Ð´o¡C¦pªG§A¥¿¦b¨Ï¥ÎVisual FoxPro¡A¨º«Ü¦³¥i¯à§Aªºµ{¦¡·|¥]¬A¹Bºâ¤¸¾Ú¡A³o¥¿¬O§A©Ò»Ý­n«OÅ@ªº¡C

¹ï©óVisualFoxPro¶}µoªÌ¤£©¯ªº¬O¡A·L³n±q¥¼·Pı¨ì­n¦bFoxPro¤¤´£¨Ñ¤º«Øªº±K½X§Þ³N©Î¦w¥þªíªº­¢¤Á©Ê¡CDBFÀÉ°£¤F´£¨Ñ·sªº¸ê®ÆÃþ«¬©M¥]§t¦bDBC¤¤¥~¡A³o»ò¦h¦~¨Ó¨Ã¨S¦³¤°»ò¤j§ïÅÜ¡C
¦pªG§A¨Sªk«Ø¥ß¨ü±K½X«OÅ@ªº¸ê®Æ®w¡A¨º»òFoxPro¶}µoªÌÀ³¦p¦ó«OÅ@¸ê®Æ©O¡H ¦pªG§A·Q§¹¥þ«OÅ@§Aªº¸ê®Æ¥H­P§O¤HµLªk¥Î°O¨Æ¥»¥´¶}©M¬Ý¨ì¤å¥»Äæ¦ì¤º®eªº¸Ü¡A¨º§AÀ³¸Ó¨Ï¥Î¥t¤@­Ó¤£¦Pªº¸ê®Æ®w¥­»O¡A ¨Ò¦pMicrosoft SQL Server 2000(­Ó¤Hª©©Î§¹¾ãª©)¡C SQL Server«OÅ@¸ê®Æ§K©ó³Q°½¿s¡A¦Ó¥B§A¯à©ñ¤ß¨Ï¥Î³QWindowsÅçÃÒªº±KÆ_¡C
µM¦Ó,SQL Server¤£¥i¯à¬O¥ô¦ó±¡ªp¤Uªºµª®×¡C §A¥i¯à»Ý­n³q¹Lºô¸ôµo§G§Aªº¤@­Ó¤pµ{¦¡¡A¦Ó¨ä¤¤¥]§t¤F¤@¨Ç§A¤£§Æ±æ¥Î¤á¯à»´©ö¬Ý¨ìªº¸ê°T¡C ¦b³oºØ±¡ªp¤U¡AÀɤj¤p©M¥i¥Î©Ê¦¨¬°³Ì¤jªºÃöª`, ¦Ó¹B¦æSQL Server´N¤£¬O¤Ó©ú´¼¤F¡C
±K½X¨Ï¥Îªk
·L³nµo§GªºCryptoAPI 1.0©M2.0ª©´£¨Ñªº°ò¦¥[±K¤èªk¥i¯à¬O§Aªºµª®×¡C ¥¦¤ä´©³q¥Î«¬¼Æ½Xñ¦W©M¸ê®Æ¥[±K§Þ³N¡C WindowsXP/2000/98/NT/95¨t²Î´¶¹M¥]§t¤F³o­Ó±K½X§Þ³N¡A¥¦¥ç³Q¥]§t¦b·L³nªºIE3.0©M¨ä«áÄòª©¥»¤º¡C
·íVisual FoxPro 7.0ªºFFC¥]¬A_crypt.vcxªº®É­Ô ¡A·L³nFoxPro¶}µo²Õ»{¯u¦a¦Ò¼{¹L_crypt.vcx¥i¥H³q¹LCryptoAPI´£¨Ñ²©öªº¸ê®Æ¥[±K©M¸Ñ±K¥\¯à¡C §A¥i¥H¦b§AªºÀ³¥Îµ{¦¡¤¤¨Ï¥Î³o­ÓÃþ¥h¹ê²{¥[±KÀ³¥Î¡C
·í§A¨Ï¥Î³o­Ó¥[±KÀ³¥Î®É, §A»Ý­n§@¥X¤@¨ÇÅý¨B¡A³o®É§A±N¤£±o¤£©ñ±óVFP¨º¨³±¶ªº¸ê®Æ¬d¸ß³t«×¡C ½s½X¥[±K©M¸Ñ±K¸ê®Æ»Ý­n¦û¾Ú¤j¶q¹B¦æ®É¶¡¡A©Ò¥H·Q¦b¬d¸ß¤¤¶¡¹B¦æ¥¦¬O¿ù»~ªº¡C
¦]¦¹,³Ì¦nªº¿ï¾Ü¬O¦b§AÀx¦s¸ê®Æ¤§«e©ÎªÌ¦b§A¦¬¨ì¸ê®Æ¤§«á¶i¦æ½s½X¥[±K¡C ¦ý¬O§A¦p¦ó¦b¤@­ÓFoxProªí¤¤Àx¦s¥[±Kªº¸ê®Æ©O?
¥¿½Tªºµª®×¬O: §A¬O¥i¥Hªº¡C ³oùئ³­Ó²³æÀ³¥Î¥Ü¨Ò´£¨Ñ¤@­Ó¤èªkÃÒ©ú§A¯à°÷¨Ï¥Î_crypt.vcx¤¤ªº¥[±KÀ³¥Î§Þ³N:
***«Ø¥ß¸ê®Æªí¨Ã¥[±KªºÂ²³æ¥Ü¨Ò
Public goApp
goApp = Createobject("myApp")
goApp.Run()
DEFINE CLASS myApp AS Session
** §A¥i¥H¿ï¾Ü¤ñ³o§ó½ÆÂøªº±KÆ_
cKey = "VFP7Rocks!"
oCrypto = .f.
PROCEDURE Init
This.oCrypto = Newobject("_cryptapi", Home(1) + ;
"ffc\_crypt.vcx")
** ¤£¦P¾÷¾¹¤¤ªº_crypt.vcxªº¦ì¸m±N¤£¬Û¦P¡A¦]¦¹§A¥²¶·©ú½T«ü©wÀɥؿý¡C
** ³oùØ¥Hwindows2000¬°¨Ò¡C
this.oCrypto.cProviderName = ;
"Microsoft Base Cryptographic Provider v1.0"
Endproc
Function Run
=this.BuildTable("original")
=this.EncryptTable("original", "encrypted", this.cKey)
=this.DecryptTable("encrypted", "decrypted", this.cKey)
=this.BrowseTable("original", "encrypted", "decrypted")
Endfunc
** «Ø¥ß¤@­Ó¸ê®Æªí
Function BuildTable( tcTableName )
Create Table (tcTableName) Free (name C(20))
Insert Into (tcTableName) values ("Green Clovers")
Insert Into (tcTableName) values ("Blue Diamonds")
Insert Into (tcTableName) values ("Orange Stars")
Insert Into (tcTableName) values ("Pink Hearts")
Insert Into (tcTableName) values ("Purple Horseshoes")
Insert Into (tcTableName) values ("Yellow Moons")
Endfunc
** ¥[±K¨C­Ó°O¿ý¨Ã¶ñ¤J·sªí
Function EncryptTable( tcDecryptedTable, tcEncryptedTable, tcKey )
Create Table (tcEncryptedTable) Free (data C(254))
Select (tcDecryptedTable)
Local lcCipher, luResult
Scan
lcCipher = ""
lcText = Trim(&tcDecryptedTable..name)
luResult = ;
this.oCrypto.encryptSessionBlockString(lcText, tcKey, @lcCipher )
Insert Into (tcEncryptedTable) values (lcCipher)
EndScan
Endfunc
** ¸Ñ±K¨C­Ó°O¿ý¨Ã¶ñ¤J·sªí
Function DecryptTable( tcEncryptedTable,
tcDecryptedTable,
tcKey )
Create Table (tcDecryptedTable) Free (data C(20))
Select (tcEncryptedTable)
Local lcCipher, luResult
Scan
lcText = ""
lcCipher = Trim(&tcEncryptedTable..data)
luResult = ;
this.oCrypto.decryptSessionBlockString(lcCipher, tcKey, @lcText)
Insert Into (tcDecryptedTable) values (lcText)
EndScan
EndFunc
** ¬yÄý¤T­Ó¸ê®Æªí¨Ã¶i¦æ¸ê®Æ¤ñ¸û
Function BrowseTable( tcTable1, tcTable2, tcTable3 )
Select (tcTable1)
Browse Nowait
Select (tcTable2)
Browse Nowait
Select (tcTable3)
Browse Nowait
Endfunc
ENDDEFINE
³o¨Ç¥N½X«Ø¥ß¤@­Ó¥]§t´Óª«¦WºÙªºÂ²³æ¸ê®Æªí¡A¨Ã¨Ï¥Î¤@­Ó«ü©wªº±KÆ_¨Ó¶i¦æ¥[¸Ñ±K¡C
³o¬O¤@­ÓÃÒ©ú§A¯à°÷³q¹L¨Ï¥ÎÄæ¦ì¥[±K§Þ³N«OÅ@¸ê®ÆªºÂ²³æ¨Ò¤l¡C
´£¿ô¤j®aª`·Nªº¬O¡A·í§A¨Ï¥Î¥[±KÄæ¦ì«á¡A¨t²Îºë½T¬d¸ß©Ê¯à±N³Q¦³©Ò­­¨î¡C¥t¥~¡A·í§A¬d¸ßªº®É­Ô,§AÀ³¸Ó¥[±K§Aªº¬d¸ß¼Ð·Ç©M¨Ï¥Î¬Û¦Pªº±KÆ_¡A¨Ã¨Ï¥Î±K½X¬d¸ß:
Locate For MyTable.name == ";q?&?G9?-o?* -¢X "
¤£­n¹Á¸Õ¨Ï¥Î§A·j¯Á¨ìªº¸Ñ±K¸ê®Æ¶i¦æ·j¯Á, Á|¨Ò»¡:
Locate for Decrypt(MyTable.Name, key) = "Orange Stars"
§A±N·|«á®¬¨Ï¥Î³oºØ¤èªk¶i¦æ¬d¸ß¡A¦]¬°FoxPro±N·|¨C±ø°O¿ý§¡´£¥æ¸Ñ½Xª½¨ì§ä¨ì¬Û¤Ç°tªº¸ê®Æ¬°¤î!
±KÆ_ºÞ²z
§Aªº½sĶ±K½X¹Bºâªk«h©M§Aªº±KÆ_¦Pµ¥­«­n¡A¦pªG§A¦³¿³½ìªº¸Ü¡A§A¥i¥H¨Ï¥Î¥@¬É¤W¤Q»õ¦h­Ó±j¤O¥[±K¹Bºâªk«h¶i¦æ¸ê®Æ¥[±K, ¦ý¥u­n§Aªº¥[±K¸ê®Æ±KÆ_¤@¥¹¤½¶}, §Aªº¸ê®Æ«Ü§Ö´N·|³Q¤½§G¨ì¤¬Ápºô¤W¤F¡C
³o¤£¬O«ç¼Ë«OÅ@±zªº±KÆ_ªºÂ²³æµª®×¡A¦³¤@­Ó¤èªk´N¬O½T«H§Aªº±KÆ_±q¨Ó¤£¨Ï¥Î¶H§Ú¥Ü¨Ò¥N½X¤¤¨Ï¥Îªº§¹¾ãµu»y¡A¦Ó¬O¨Ï¥Îµü»y©M¦r¥Àªº½ÆÂø²Õ¦X, ¦sÀx¦b§AÀ³¥Îµ{¦¡¤¤ªº¤£¦PÄÝ©ÊùØ:
...
lcFoobar = "WFJ@##"
lcGoof = "$@%93093"
...
luResult = encryptSessionBlockString( ;
lcText, lcFoobar + "XJ-EF" + lcGoof, @lcCipher )
³q¹L³oºØ¤èªk§@¥X¨Óªº¨t²Î¡A±N·|µ¹¨º¨Ç·Q¯}¸Ñ§Aªºµ{¦¡©M´£¨ú¨Ï¥Î±KÆ_ªº¤H¼W¥[§ó¦hªº§xÃø¡C
¦^³»ºÝ
À˵ø·|­û­Ó¤H¸ê®Æ µo°e¨p¤H°T®§
±q¤§«eªº¤å³¹¶}©lÅã¥Ü:   
µoªí·s¥DÃD   ¦^ÂÐ¥DÃD    VFP ·R¥ÎªÌªÀ°Ï ­º­¶ -> VFP °Q½×°Ï ©Ò¦³ªº®É¶¡§¡¬° ¥x¥_®É¶¡ (GMT + 8 ¤p®É)
²Ä1­¶(¦@1­¶)

 
«e©¹:  
±z µLªk ¦b³o­Óª©­±µoªí¤å³¹
±z µLªk ¦b³o­Óª©­±¦^ÂФ峹
±z µLªk ¦b³o­Óª©­±½s¿è¤å³¹
±z µLªk ¦b³o­Óª©­±§R°£¤å³¹
±z µLªk ¦b³o­Óª©­±¶i¦æ§ë²¼
±z µLªk ¦b³o­Óª©­±ªþ¥[ÀÉ®×
±z µLªk ¦b³o­Óª©­±¤U¸üÀÉ®×


Powered by phpBB © 2001, 2005 phpBB Group
¥¿Å餤¤å»y¨t¥Ñ phpbb-tw ºûÅ@»s§@