




已閱讀5頁,還剩2頁未讀, 繼續免費閱讀
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
關于VFP的加密 Vfp語言易學好用,其排序、檢索速度之快,是VB和DELPHI所不及的,但其保密性差是也大家公認的。只要稍為懂一定數據庫知識的人,一打開數據表,其內容便一目了然,且可任意更改,其保密性和安全性可想而知,這還只是其一。其二:隨著UNFOXpro.exe和Refox7.exe等的出現,你辛辛苦苦編的程序,即使編譯成EXE文件,一經UN或RE則你煞費苦心設置的版權符、驗證關、口令、密碼等都如同虛設。 那么Vfp的保密性差的弱點就沒辦法避免嗎?NO !辦法肯定有,這里就先談談“數據表的加密問題”,以下就是我的一點粗淺看法,請網友們踴躍討論。 數據表加解密常見的有以下兩種方式: 1、直接在磁盤上加解密,即在關閉數據表文件后,對已保存在磁盤上的數據表文件進行加密,在每次打開數據表文件前,先在磁盤上對數據表解密,然后再供 Vfp將其打開,其優點是加解密容易,一般程序員用Vfp提供的低級文件函數都能編出加解密程序;缺點是:在WIN的多任務環境下,很容易取得解密后的數據,另外一旦系統出錯,還未來得及加密就重新啟動系統,那保留在磁盤上的就是解密后的數據,對保密性能要求稍微高一些的程序員,一般不會采用此方式。 2、在內存中對數據表的字段進行加解密,這又可分兩種: A、象遠程續緣1999年第一期 第8個問題那樣用ASCII碼進行+、-、*、/運算加解密,但這種方法有個缺點即當加或乘時,其值容易大于255(FFH)即大于ASCII碼的最大值,這時無法用CHR()換成字符保存,如對大于255的數據不加密,則解密時又會帶來麻煩,即同是254,哪個是加密后的254,哪個是未加密的254?這也就是為何有人問漢字解密后會出現許多同音漢字的原因。B、完全利用Vfp3.0以上版本提供的位操作函數bitxor()進行加密,該加密方法是C語言及匯編語言常用的加密方法,其原理是將一字節的8位二進制數與另一個二進制數進行異或操作,如用6個以上密匙(口令)進行加密,則在不知其密匙的情況下,是很難解密的。它還有一個優點是加解密用同一模塊,即一次執行是加密,再次執行為解密。以下是加解密例程( 注:調用該過程時,需加密的數據表已打開,且為當前工作區):Procedure jjmgc para Pass &Pass是密匙,設Pass=wjgwkj priv all mccd=len(Pass) &取Pass密匙長度 Sjbzds=fcou() Dime Jmsz(Sjbzds)Go top Scan Scat to Jmsz &讀一條記錄到數組For I=1 to SjbzdsIf type(Jmsz(i)=C &該字段是字符型嗎Zdcd=len(trim(Jmsz(i) &取字段長度 mc1=1 For x=1 to Zdcd Jm1=asc(subs(Jmsz(I),x,1) &取字段中一個字節 jm2=asc(subs(Pass,mc1,1) &取Pass中一個字節 jmjg= chr(bitxor(jm1,jm2) &將JM1按JM2的值異或 Jmsz(I)=stuf(Jmsz(I),x,1,jmjg) &進行加密替換 mc1=iif(mc1mccd,1,mc1+1) &判斷MC1是否大于mCCD Endf EndiEndf Gath from Jmsz &將加解密的數據,寫入當前記錄Ends retu 3、在內存中直接對整個數據表文件(.DBF)加解密,這也有兩種方法: A、借助現成工具,猶如UCDOS SDK所提供的DBFKey()函數那樣,與FOX無縫連接,不裝入LoadSdk用USE是無法打開數據表的,其優點是顯而易見的,但目前在WIN環境下還找不到這樣的工具,而自己制作其難度大,一般程序員做不到。 B、用Vfp提供的低級文件函數,配合Create Curso -SQL 和 Insert -SQL 命令可實現類似UCDOS SDK所達到的功能,其原理是: 先用低級文件函數自定義一個文件頭(或著叫文件格式,象BMP、DOC等都有自己的文件格式),在文件頭中可包含:文件頭長度、字段名、字段類型、字段長度、每條記錄長度、密匙(口令字)等,接著將您的記錄按文件頭規定的格式加密后順序寫入文件中,由于文件格式是您自定義的,所以一般是無法打開讀取的。 在使用時,用低級文件函數從您自定義的文件中先讀取文件頭的內容,讀到字段名、字段類型、字段長度時,將其用Create Curso -SQL到新建的數據表中,讀取記錄后先解密,再用Insert -SQL 到剛建的數據表中,然后就可正常使用了,結束使用需存盤時再按上述方法寫入文件。 該方法始終是再內存中進行的,故即使系統出錯,重新啟動系統也無妨。用這種方法加解密確實是在Vfp狀態下比較好的辦法,但可能對于沒學過C語言或匯編的朋友,對文件格式等不理解,由于代碼較長,無法列出,如網友們有興趣,我可供天堂軟件俱樂部發放。 以上只是我對Vfp數據保密性問題的探討之一 數據表加解密,從中大家會看到,如果只對數據表加解密,而對執行加解密的程序代碼不加密,或用Refox等軟件將您的EXE文件反編譯,那您的加密方法及密匙(口令字),就很容易暴露,其加密的可靠性就有問題,這就是我要講的第二個問題: 如何加密和保護您的程序 如果您有何高見,請到焦點論壇發表,謝謝! Declare FindW
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 模具設計的結構分析與評估試題及答案
- 2024模具設計師資格考試核心試題及答案
- 2024年農業植保員考試全解析試題及答案邀請
- 2024年模具設計師資格考試總復習試題與答案
- 農作物種子繁育員資格考試模擬試題
- 黑科技應用籃球裁判員等級考試試題及答案
- 模具設計者應掌握的質量標準及試題與答案
- 2024年模具設計師資格考試準備必讀試題及答案
- 高效復習2024年農業植保員資格考試試題與答案
- 務實的體育經紀人試題學習
- 2025年初中語文名著閱讀《林海雪原》知識點總結及練習
- 西部計劃考試考題及答案
- 教師專業發展制度教師專業發展的保障制度
- 學校德育管理體系
- XX文化產業投資公司二零二五年度股東退股及文化創意協議
- 青年博物館文創產品消費研究:一個社會實踐分析視角
- 2025版學校學生食堂餐具清洗消毒服務合同2篇
- 跟著電影去旅游知到智慧樹章節測試課后答案2024年秋山東大學(威海)
- 《有機硅乳液防水劑》文本及編制說明
- 學校基金會的資金籌集與運用策略
- 2021年高考物理試卷(江蘇)(解析卷)
評論
0/150
提交評論