




已閱讀5頁(yè),還剩2頁(yè)未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
關(guān)于VFP的加密 Vfp語(yǔ)言易學(xué)好用,其排序、檢索速度之快,是VB和DELPHI所不及的,但其保密性差是也大家公認(rèn)的。只要稍為懂一定數(shù)據(jù)庫(kù)知識(shí)的人,一打開(kāi)數(shù)據(jù)表,其內(nèi)容便一目了然,且可任意更改,其保密性和安全性可想而知,這還只是其一。其二:隨著UNFOXpro.exe和Refox7.exe等的出現(xiàn),你辛辛苦苦編的程序,即使編譯成EXE文件,一經(jīng)UN或RE則你煞費(fèi)苦心設(shè)置的版權(quán)符、驗(yàn)證關(guān)、口令、密碼等都如同虛設(shè)。 那么Vfp的保密性差的弱點(diǎn)就沒(méi)辦法避免嗎?NO !辦法肯定有,這里就先談?wù)劇皵?shù)據(jù)表的加密問(wèn)題”,以下就是我的一點(diǎn)粗淺看法,請(qǐng)網(wǎng)友們踴躍討論。 數(shù)據(jù)表加解密常見(jiàn)的有以下兩種方式: 1、直接在磁盤(pán)上加解密,即在關(guān)閉數(shù)據(jù)表文件后,對(duì)已保存在磁盤(pán)上的數(shù)據(jù)表文件進(jìn)行加密,在每次打開(kāi)數(shù)據(jù)表文件前,先在磁盤(pán)上對(duì)數(shù)據(jù)表解密,然后再供 Vfp將其打開(kāi),其優(yōu)點(diǎn)是加解密容易,一般程序員用Vfp提供的低級(jí)文件函數(shù)都能編出加解密程序;缺點(diǎn)是:在WIN的多任務(wù)環(huán)境下,很容易取得解密后的數(shù)據(jù),另外一旦系統(tǒng)出錯(cuò),還未來(lái)得及加密就重新啟動(dòng)系統(tǒng),那保留在磁盤(pán)上的就是解密后的數(shù)據(jù),對(duì)保密性能要求稍微高一些的程序員,一般不會(huì)采用此方式。 2、在內(nèi)存中對(duì)數(shù)據(jù)表的字段進(jìn)行加解密,這又可分兩種: A、象遠(yuǎn)程續(xù)緣1999年第一期 第8個(gè)問(wèn)題那樣用ASCII碼進(jìn)行+、-、*、/運(yùn)算加解密,但這種方法有個(gè)缺點(diǎn)即當(dāng)加或乘時(shí),其值容易大于255(FFH)即大于ASCII碼的最大值,這時(shí)無(wú)法用CHR()換成字符保存,如對(duì)大于255的數(shù)據(jù)不加密,則解密時(shí)又會(huì)帶來(lái)麻煩,即同是254,哪個(gè)是加密后的254,哪個(gè)是未加密的254?這也就是為何有人問(wèn)漢字解密后會(huì)出現(xiàn)許多同音漢字的原因。B、完全利用Vfp3.0以上版本提供的位操作函數(shù)bitxor()進(jìn)行加密,該加密方法是C語(yǔ)言及匯編語(yǔ)言常用的加密方法,其原理是將一字節(jié)的8位二進(jìn)制數(shù)與另一個(gè)二進(jìn)制數(shù)進(jìn)行異或操作,如用6個(gè)以上密匙(口令)進(jìn)行加密,則在不知其密匙的情況下,是很難解密的。它還有一個(gè)優(yōu)點(diǎn)是加解密用同一模塊,即一次執(zhí)行是加密,再次執(zhí)行為解密。以下是加解密例程( 注:調(diào)用該過(guò)程時(shí),需加密的數(shù)據(jù)表已打開(kāi),且為當(dāng)前工作區(qū)):Procedure jjmgc para Pass &Pass是密匙,設(shè)Pass=wjgwkj priv all mccd=len(Pass) &取Pass密匙長(zhǎng)度 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) &取字段長(zhǎng)度 mc1=1 For x=1 to Zdcd Jm1=asc(subs(Jmsz(I),x,1) &取字段中一個(gè)字節(jié) jm2=asc(subs(Pass,mc1,1) &取Pass中一個(gè)字節(jié) jmjg= chr(bitxor(jm1,jm2) &將JM1按JM2的值異或 Jmsz(I)=stuf(Jmsz(I),x,1,jmjg) &進(jìn)行加密替換 mc1=iif(mc1mccd,1,mc1+1) &判斷MC1是否大于mCCD Endf EndiEndf Gath from Jmsz &將加解密的數(shù)據(jù),寫(xiě)入當(dāng)前記錄Ends retu 3、在內(nèi)存中直接對(duì)整個(gè)數(shù)據(jù)表文件(.DBF)加解密,這也有兩種方法: A、借助現(xiàn)成工具,猶如UCDOS SDK所提供的DBFKey()函數(shù)那樣,與FOX無(wú)縫連接,不裝入LoadSdk用USE是無(wú)法打開(kāi)數(shù)據(jù)表的,其優(yōu)點(diǎn)是顯而易見(jiàn)的,但目前在WIN環(huán)境下還找不到這樣的工具,而自己制作其難度大,一般程序員做不到。 B、用Vfp提供的低級(jí)文件函數(shù),配合Create Curso -SQL 和 Insert -SQL 命令可實(shí)現(xiàn)類(lèi)似UCDOS SDK所達(dá)到的功能,其原理是: 先用低級(jí)文件函數(shù)自定義一個(gè)文件頭(或著叫文件格式,象BMP、DOC等都有自己的文件格式),在文件頭中可包含:文件頭長(zhǎng)度、字段名、字段類(lèi)型、字段長(zhǎng)度、每條記錄長(zhǎng)度、密匙(口令字)等,接著將您的記錄按文件頭規(guī)定的格式加密后順序?qū)懭胛募校捎谖募袷绞悄远x的,所以一般是無(wú)法打開(kāi)讀取的。 在使用時(shí),用低級(jí)文件函數(shù)從您自定義的文件中先讀取文件頭的內(nèi)容,讀到字段名、字段類(lèi)型、字段長(zhǎng)度時(shí),將其用Create Curso -SQL到新建的數(shù)據(jù)表中,讀取記錄后先解密,再用Insert -SQL 到剛建的數(shù)據(jù)表中,然后就可正常使用了,結(jié)束使用需存盤(pán)時(shí)再按上述方法寫(xiě)入文件。 該方法始終是再內(nèi)存中進(jìn)行的,故即使系統(tǒng)出錯(cuò),重新啟動(dòng)系統(tǒng)也無(wú)妨。用這種方法加解密確實(shí)是在Vfp狀態(tài)下比較好的辦法,但可能對(duì)于沒(méi)學(xué)過(guò)C語(yǔ)言或匯編的朋友,對(duì)文件格式等不理解,由于代碼較長(zhǎng),無(wú)法列出,如網(wǎng)友們有興趣,我可供天堂軟件俱樂(lè)部發(fā)放。 以上只是我對(duì)Vfp數(shù)據(jù)保密性問(wèn)題的探討之一 數(shù)據(jù)表加解密,從中大家會(huì)看到,如果只對(duì)數(shù)據(jù)表加解密,而對(duì)執(zhí)行加解密的程序代碼不加密,或用Refox等軟件將您的EXE文件反編譯,那您的加密方法及密匙(口令字),就很容易暴露,其加密的可靠性就有問(wèn)題,這就是我要講的第二個(gè)問(wèn)題: 如何加密和保護(hù)您的程序 如果您有何高見(jiàn),請(qǐng)到焦點(diǎn)論壇發(fā)表,謝謝! Declare FindW
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 幼兒園數(shù)學(xué)習(xí)題提升與答案解析
- 施工現(xiàn)場(chǎng)安全應(yīng)急演練內(nèi)容試題及答案
- 文化產(chǎn)業(yè)園產(chǎn)業(yè)集聚與服務(wù)體系構(gòu)建中的文化產(chǎn)業(yè)園區(qū)產(chǎn)業(yè)鏈延伸與價(jià)值鏈提升報(bào)告
- 最早高考生物試題及答案
- 鄉(xiāng)村旅游與文化產(chǎn)業(yè)融合發(fā)展模式研究-2025年文旅融合背景下的報(bào)告
- 學(xué)習(xí)計(jì)劃2025年大學(xué)化學(xué)試題及答案
- 家具設(shè)計(jì)中的創(chuàng)意思維與用戶體驗(yàn)提升相結(jié)合探討試題及答案
- 月是故鄉(xiāng)明試題及答案
- 科學(xué)實(shí)驗(yàn)方法論題試題及答案
- 工程師安全管理系統(tǒng)建立試題及答案
- 建筑工程材料取樣送檢一覽表
- 婚姻家庭繼承法期末考試復(fù)習(xí)題及參考答案
- 2024年四川省成都市中考數(shù)學(xué)試卷(含解析)
- 項(xiàng)目全周期現(xiàn)金流管理培訓(xùn)課件
- 2024新版掛名法人免責(zé)協(xié)議完整版
- 小學(xué)群眾滿意度調(diào)查測(cè)評(píng)表
- (正式版)JTT 1497-2024 公路橋梁塔柱施工平臺(tái)及通道安全技術(shù)要求
- 高血壓藥物治療的循證醫(yī)學(xué)證據(jù)
- python程序設(shè)計(jì)-說(shuō)課
- 生肖專(zhuān)題-酉雞集
- 施工現(xiàn)場(chǎng)臨時(shí)用電安全檢查表
評(píng)論
0/150
提交評(píng)論