系統(tǒng)登錄如何加密
隨著我國(guó)信息化建設(shè)的飛速發(fā)展,以網(wǎng)絡(luò)和數(shù)據(jù)庫(kù)技術(shù)為基礎(chǔ)的信息處理系統(tǒng)應(yīng)用正逐步深入。但是,由于技術(shù)限制和軟件缺陷等因素,系統(tǒng)的正常運(yùn)行可能會(huì)受到來(lái)自不同方面的安全威脅尤其是一些黑客總是憑借自己的破密技術(shù)非法登錄系統(tǒng),對(duì)信息系統(tǒng)造成不可估量的破壞,因而,系統(tǒng)的登錄加密技術(shù)就顯得尤為重要,所以我們必須采用一種行之有效的方法來(lái)保證系統(tǒng)登錄的安全性。
一、傳統(tǒng)的系統(tǒng)加密方式及其弊端
目前,在大多數(shù)開(kāi)發(fā)的應(yīng)用系統(tǒng)中,最常用的方式就是使用口令實(shí)現(xiàn)對(duì)系統(tǒng)操作權(quán)限的訪問(wèn)控制。實(shí)現(xiàn)的方法就是在進(jìn)入系統(tǒng)時(shí)提示操作者輸入一個(gè)字符串口令。這種口令的設(shè)置方法是將固定的口令密碼寫(xiě)在程序代碼中,在系統(tǒng)開(kāi)始運(yùn)行時(shí),要求操作者輸入該密碼,如果密碼正確,方可進(jìn)入,否則,系統(tǒng)是不能讓操作者使用的。這種傳統(tǒng)加密方式的缺點(diǎn)是密碼固定,而且整個(gè)系統(tǒng)只有一個(gè)密碼。不會(huì)隨機(jī)改變,而且容易被別人破解。所以,這種傳統(tǒng)的加密方式存在極大的安全隱患。
二、一種系統(tǒng)新加密方法的提出
在設(shè)計(jì)系統(tǒng)時(shí),也有的程序設(shè)計(jì)者針對(duì)傳統(tǒng)的系統(tǒng)加密方式采用了一種較為安全的加密方式,即將用戶在進(jìn)入系統(tǒng)時(shí)輸入的口令通過(guò)加密轉(zhuǎn)換為一種稱為加密偽碼的數(shù)據(jù),存儲(chǔ)在數(shù)據(jù)庫(kù)中,但這種方法的密碼和偽碼仍有明顯的對(duì)應(yīng)關(guān)系,容易被破解。
針對(duì)這種情況,提出了一種在我們VisualFoxPro中用隨機(jī)偽密碼存儲(chǔ)在數(shù)據(jù)庫(kù)中的方法,實(shí)現(xiàn)了簡(jiǎn)單可靠的系統(tǒng)加密。這種方法的特點(diǎn)是實(shí)現(xiàn)簡(jiǎn)單,加密可靠,不易破解口。
1、系統(tǒng)新加密方法的原理
它的原理是可將1個(gè)1~7位的用戶密碼轉(zhuǎn)換為20位的隨機(jī)偽密碼,且每次重新設(shè)定密碼時(shí)所產(chǎn)生的偽碼都不相同。通過(guò)變換生成的20位偽碼沒(méi)有任何規(guī)律性,即使從數(shù)據(jù)庫(kù)中擦除偽碼也無(wú)法進(jìn)入系統(tǒng),從而實(shí)現(xiàn)了可靠的密碼權(quán)限控制。
2、生成隨機(jī)的偽密碼
從用戶密碼到存庫(kù)的隨機(jī)偽碼之間的變換由2個(gè)函數(shù)完成,即加密函數(shù)和解密函數(shù)。加密函數(shù)的思想是對(duì)用戶密碼(真碼)進(jìn)行復(fù)雜化、隱蔽化處理,也就是將真碼淹沒(méi)在20位偽碼中,加密函數(shù)如下:

若真碼為1234567,則偽碼為6491530215286819—3982,無(wú)論真碼是1位還是多位,偽碼總是具有同樣的不確定性和復(fù)雜性,所以若想通過(guò)簡(jiǎn)化真碼來(lái)分析偽碼是不可能的。
3、解碼
解碼函數(shù)是將數(shù)據(jù)庫(kù)中存放的偽碼轉(zhuǎn)換成原用戶密碼,其代碼如下:

由于提交的系統(tǒng)全是編輯的,非法者是無(wú)法得到密碼轉(zhuǎn)換函數(shù)中的信息的,所以解密方法不易被發(fā)現(xiàn)。
三、用戶權(quán)限控制的實(shí)現(xiàn)
對(duì)一個(gè)包含多種業(yè)務(wù)操作的應(yīng)用系統(tǒng),由于業(yè)務(wù)的要求,常需要限制不同操作者的業(yè)務(wù)操作范圍,在VFP中,可以建立一個(gè)權(quán)限數(shù)據(jù)表,表中有多個(gè)字段,分別用于存儲(chǔ)每個(gè)操作者的代號(hào)、姓名、偽密碼等信息,如下表所示。

系統(tǒng)主表單上的多個(gè)業(yè)務(wù)模塊由多個(gè)按鈕來(lái)實(shí)現(xiàn)啟動(dòng),那么在系統(tǒng)主表單的【確定】按鈕CLICK方法程序中添加一些判斷代碼,就可以實(shí)現(xiàn)系統(tǒng)的口令和操作權(quán)限控制。輸入工號(hào)和口令后,按【確定】,CLICK中的代碼則首先根據(jù)輸入的工號(hào),對(duì)權(quán)限數(shù)據(jù)表中所對(duì)應(yīng)記錄的口令偽碼進(jìn)行解碼,得出的真碼與輸人口令一致方可進(jìn)入系統(tǒng)。為了在系統(tǒng)一啟動(dòng)就打開(kāi)權(quán)限數(shù)據(jù)表,故要將權(quán)限表添加到主表單的數(shù)據(jù)環(huán)境中。不同工號(hào)的操作員在進(jìn)入系統(tǒng)后可以白行修改自己的密碼,而管理員無(wú)法知道操作員的密碼,只能進(jìn)行擦除,這一點(diǎn)更加提高了操作員密碼的安全性。
小知識(shí)之visual foxpro:
visual foxpro簡(jiǎn)稱VFP,同VB、DELPHI一樣都是程序開(kāi)發(fā)工具,VFP由于自帶免費(fèi)的DBF格式的數(shù)據(jù)庫(kù),在國(guó)內(nèi)曾經(jīng)是非常流行的開(kāi)發(fā)語(yǔ)言,現(xiàn)在許多單位的MIS系統(tǒng)都是用VFP開(kāi)發(fā)的。











