VFP平臺(tái)數(shù)據(jù)庫(kù)加密方法

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

VFP平臺(tái)數(shù)據(jù)庫(kù)加密方法

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

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

1、固定密碼

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

2、簡(jiǎn)單加密的固定密碼

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

3、簡(jiǎn)單加密變化的密碼

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

X=date()

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

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

4、隨機(jī)偽碼加密法

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

從用戶(hù)密碼到存庫(kù)的隨機(jī)偽碼之間的變換由兩個(gè)函數(shù)完成,一個(gè)是加密函數(shù),一個(gè)是解密函數(shù)。加密函數(shù)的思想是對(duì)用戶(hù)密碼(真碼)進(jìn)行復(fù)雜化、隱蔽化處理,也就是將真碼淹沒(méi)在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,無(wú)論真碼是一位還是相同多位r偽碼總是具有同樣的不確定性和復(fù)雜性,所以若想通過(guò)簡(jiǎn)化真碼來(lái)分析偽碼是不可能的。

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

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)全是編輯的,非法者是無(wú)法得到密碼轉(zhuǎn)換函數(shù)中的信息的,所以解密方法是不易被發(fā)現(xiàn)的。

小知識(shí)之VFP

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