




已閱讀5頁,還剩2頁未讀, 繼續(xù)免費閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
關(guān)于VFP的加密 Vfp語言易學(xué)好用,其排序、檢索速度之快,是VB和DELPHI所不及的,但其保密性差是也大家公認的。只要稍為懂一定數(shù)據(jù)庫知識的人,一打開數(shù)據(jù)表,其內(nèi)容便一目了然,且可任意更改,其保密性和安全性可想而知,這還只是其一。其二:隨著UNFOXpro.exe和Refox7.exe等的出現(xiàn),你辛辛苦苦編的程序,即使編譯成EXE文件,一經(jīng)UN或RE則你煞費苦心設(shè)置的版權(quán)符、驗證關(guān)、口令、密碼等都如同虛設(shè)。 那么Vfp的保密性差的弱點就沒辦法避免嗎?NO !辦法肯定有,這里就先談?wù)劇皵?shù)據(jù)表的加密問題”,以下就是我的一點粗淺看法,請網(wǎng)友們踴躍討論。 數(shù)據(jù)表加解密常見的有以下兩種方式: 1、直接在磁盤上加解密,即在關(guān)閉數(shù)據(jù)表文件后,對已保存在磁盤上的數(shù)據(jù)表文件進行加密,在每次打開數(shù)據(jù)表文件前,先在磁盤上對數(shù)據(jù)表解密,然后再供 Vfp將其打開,其優(yōu)點是加解密容易,一般程序員用Vfp提供的低級文件函數(shù)都能編出加解密程序;缺點是:在WIN的多任務(wù)環(huán)境下,很容易取得解密后的數(shù)據(jù),另外一旦系統(tǒng)出錯,還未來得及加密就重新啟動系統(tǒng),那保留在磁盤上的就是解密后的數(shù)據(jù),對保密性能要求稍微高一些的程序員,一般不會采用此方式。 2、在內(nèi)存中對數(shù)據(jù)表的字段進行加解密,這又可分兩種: A、象遠程續(xù)緣1999年第一期 第8個問題那樣用ASCII碼進行+、-、*、/運算加解密,但這種方法有個缺點即當(dāng)加或乘時,其值容易大于255(FFH)即大于ASCII碼的最大值,這時無法用CHR()換成字符保存,如對大于255的數(shù)據(jù)不加密,則解密時又會帶來麻煩,即同是254,哪個是加密后的254,哪個是未加密的254?這也就是為何有人問漢字解密后會出現(xiàn)許多同音漢字的原因。B、完全利用Vfp3.0以上版本提供的位操作函數(shù)bitxor()進行加密,該加密方法是C語言及匯編語言常用的加密方法,其原理是將一字節(jié)的8位二進制數(shù)與另一個二進制數(shù)進行異或操作,如用6個以上密匙(口令)進行加密,則在不知其密匙的情況下,是很難解密的。它還有一個優(yōu)點是加解密用同一模塊,即一次執(zhí)行是加密,再次執(zhí)行為解密。以下是加解密例程( 注:調(diào)用該過程時,需加密的數(shù)據(jù)表已打開,且為當(dāng)前工作區(qū)):Procedure jjmgc para Pass &Pass是密匙,設(shè)Pass=wjgwkj priv all mccd=len(Pass) &取Pass密匙長度 Sjbzds=fcou() Dime Jmsz(Sjbzds)Go top Scan Scat to Jmsz &讀一條記錄到數(shù)組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) &取字段中一個字節(jié) jm2=asc(subs(Pass,mc1,1) &取Pass中一個字節(jié) 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 &將加解密的數(shù)據(jù),寫入當(dāng)前記錄Ends retu 3、在內(nèi)存中直接對整個數(shù)據(jù)表文件(.DBF)加解密,這也有兩種方法: A、借助現(xiàn)成工具,猶如UCDOS SDK所提供的DBFKey()函數(shù)那樣,與FOX無縫連接,不裝入LoadSdk用USE是無法打開數(shù)據(jù)表的,其優(yōu)點是顯而易見的,但目前在WIN環(huán)境下還找不到這樣的工具,而自己制作其難度大,一般程序員做不到。 B、用Vfp提供的低級文件函數(shù),配合Create Curso -SQL 和 Insert -SQL 命令可實現(xiàn)類似UCDOS SDK所達到的功能,其原理是: 先用低級文件函數(shù)自定義一個文件頭(或著叫文件格式,象BMP、DOC等都有自己的文件格式),在文件頭中可包含:文件頭長度、字段名、字段類型、字段長度、每條記錄長度、密匙(口令字)等,接著將您的記錄按文件頭規(guī)定的格式加密后順序?qū)懭胛募?,由于文件格式是您自定義的,所以一般是無法打開讀取的。 在使用時,用低級文件函數(shù)從您自定義的文件中先讀取文件頭的內(nèi)容,讀到字段名、字段類型、字段長度時,將其用Create Curso -SQL到新建的數(shù)據(jù)表中,讀取記錄后先解密,再用Insert -SQL 到剛建的數(shù)據(jù)表中,然后就可正常使用了,結(jié)束使用需存盤時再按上述方法寫入文件。 該方法始終是再內(nèi)存中進行的,故即使系統(tǒng)出錯,重新啟動系統(tǒng)也無妨。用這種方法加解密確實是在Vfp狀態(tài)下比較好的辦法,但可能對于沒學(xué)過C語言或匯編的朋友,對文件格式等不理解,由于代碼較長,無法列出,如網(wǎng)友們有興趣,我可供天堂軟件俱樂部發(fā)放。 以上只是我對Vfp數(shù)據(jù)保密性問題的探討之一 數(shù)據(jù)表加解密,從中大家會看到,如果只對數(shù)據(jù)表加解密,而對執(zhí)行加解密的程序代碼不加密,或用Refox等軟件將您的EXE文件反編譯,那您的加密方法及密匙(口令字),就很容易暴露,其加密的可靠性就有問題,這就是我要講的第二個問題: 如何加密和保護您的程序 如果您有何高見,請到焦點論壇發(fā)表,謝謝! Declare FindW
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 車輛借用及停車費結(jié)算合同協(xié)議書
- 與教育有關(guān)的論文800字
- 大學(xué)生暑期實踐報告800字
- 臨床及血細胞分析儀基礎(chǔ)培訓(xùn)
- 保潔員勞動合同
- 文化差異的跨部門溝通研究-洞察及研究
- 2025-2030中國溶劑染料行業(yè)銷售動態(tài)及競爭策略分析報告
- 2025-2030中國油泵凸輪軸行業(yè)市場運營模式及未來發(fā)展動向預(yù)測報告
- 藥物遞送系統(tǒng)-第6篇-洞察及研究
- 信號網(wǎng)絡(luò)調(diào)控的創(chuàng)新策略-洞察闡釋
- 《納稅籌劃(第7版)》課件 第7章 其他稅種的納稅籌劃
- 四川省南充市高坪區(qū)五年級下學(xué)期期末綜合試題
- 兒童被忽視量表(CNS)
- 回購商鋪方案
- 閩教版小學(xué)英語四年級下冊總復(fù)習(xí)
- 美制螺紋對照表
- B站營銷生態(tài)與效果向營銷資源組合【嗶哩嗶哩】【通案】【互聯(lián)網(wǎng)】【社交媒體營銷】
- 01-BUFR格式應(yīng)用指南(試用版)
- 固定式升降機安全操作規(guī)程
- 輔酶Q10的基本生理作用課件
- 西方音樂史課后習(xí)題答案
評論
0/150
提交評論