VFP平臺數(shù)據(jù)庫加密方法

隨著電子商務逐漸越來越多的應用,信息的安全問題越來越受到重視,為了防止無關人員瀏覽、修改、破壞數(shù)據(jù)庫,最常用的方法就是給VFP平臺數(shù)據(jù)庫應用系統(tǒng)加上密碼,并對密碼進行加密。

VFP平臺數(shù)據(jù)庫加密方法

一、數(shù)據(jù)加密技術

數(shù)據(jù)加密技術通常使用兩種形式的加密技術,即對稱加密和公鑰(或非對稱)加密。對稱加密的以DES的算法為典型代表,非對稱加密通常以RSA算法為代表,而在VFP平臺上,通常采用以下幾種加密方法。

1、固定密碼

即系統(tǒng)中只有一個密碼,并且是同定不變的,其常用于Foxpro平臺,用IIF和Accept語句來實現(xiàn),密碼在程序設計時源程序中實現(xiàn),所以如果以后要修改其密碼,就得改變其源程序或再編寫一段子程序來修改密碼,從而導致其保密性和可變性相當欠缺。

2、簡單加密的固定密碼

即將密碼進行簡化的加密,但密碼仍是固定不變的,其實現(xiàn)方法有兩種:“鑰匙盤法”和“變換法”。 “鑰匙盤法”即首先將密碼或密碼用戶名存放在一張可移動磁盤上,使用時把可移動磁盤插入計算機,系統(tǒng)讀取其中密碼或密碼和用戶名,這種方法保密性稍好一些,但方便性就欠缺。磁盤易壞,易感染病毒,“變換法”就是通過借助CAR()函數(shù)對密碼進行互換,加密語句是:PSD=CHR (65) +CHR (66)+
CHR (67)+“9999”,換算后密碼可避免被直接發(fā)現(xiàn),若上述兩種方法混合應用,保密性就更高。

3、簡單加密變化的密碼

即利用時間函數(shù)來加密的算法,其核心語句是:

X=date()

PS2=Subs (cdow (x) ,1,3),manage—

Cdow()是返回字符型星期幾的函數(shù),用戶可根據(jù)今天是星期幾,將星期的前3個英文字母與“manage" 一起輸入,構成變化的密碼,達到稍強的保密性。

4、隨機偽碼加密法

即將1至7位的用戶密碼轉(zhuǎn)換為20位的隨機偽碼,且每次重新設定密碼時所產(chǎn)生的偽碼都不相同,通過變換生成的20位偽碼及所有任何規(guī)律性即便從數(shù)據(jù)庫中擦出偽碼也無法進入系統(tǒng),從而實現(xiàn)了可靠的密碼權限控制。

從用戶密碼到存庫的隨機偽碼之間的變換由兩個函數(shù)完成,一個是加密函數(shù),一個是解密函數(shù)。加密函數(shù)的思想是對用戶密碼(真碼)進行復雜化、隱蔽化處理,也就是將真碼淹沒在20位偽碼中,加密函數(shù)如下:

FUNC MAZHl

PARA ZMZ

ZMZ;VAL (ZMZ)

NI=RAND ( ) *10^9

IF Nl<~99999999

N1=Nl+10^9

ENDI

Nl=INT (NI)

CI=STR (N1+ZMZ) +STR (NI)

(CI,l,4)

Pl=”

P2=”

FOR K=1 T0 10

Pl=PI+SUBS (C2, 2*K;I,1)

P2=P2+SUBS (C2,2.K l)

ENDFOR

WMZ;PI+P2

RETU WMZ

若真碼為:1234567,則偽碼為:64915302152868193982,無論真碼是一位還是相同多位r偽碼總是具有同樣的不確定性和復雜性,所以若想通過簡化真碼來分析偽碼是不可能的。

解碼函數(shù)是將數(shù)據(jù)庫中存放的偽碼轉(zhuǎn)換成原用戶密碼,其代碼如下:

FUNC MAZH2

PARA WMZ

PP="

FOR K=l TO lO

PP~PP+SUBS (WMZ, K, l) +SUBS (WMZ, K+lO,l)

ENDFOR

DD--SUBS (PP, 17,4) +SUBS (PP, 1,16)

MI=SUBS (DD, l,lO)

M2=SUBS (DD, 11,10)

ZMZ=INT (VAL (MI) -VAL (M2))

RETU ZMZ

由于提交的系統(tǒng)全是編輯的,非法者是無法得到密碼轉(zhuǎn)換函數(shù)中的信息的,所以解密方法是不易被發(fā)現(xiàn)的。

小知識之VFP

Visual FoxPro ,是Microsoft公司從Fox公司的FoxBase數(shù)據(jù)庫軟件經(jīng)過數(shù)次改良,并且移植到Windows之后,得來的應用程序開發(fā)軟件,主要用于開發(fā)數(shù)據(jù)管理與運算等方面的軟件。VFP是Microsoft公司推出的最新可視化數(shù)據(jù)庫管理系統(tǒng)平臺,是功能特別強大的32位數(shù)據(jù)庫管理系統(tǒng)。它提供了功能完備的工具、極其友好的用戶界面、簡單的數(shù)據(jù)存取方式、獨一無二的跨平臺技術,具有良好的兼容性、真正的可編譯性和較強的安全性,是目前最快捷、最實用的數(shù)據(jù)庫管理系統(tǒng)軟件之一。