系統(tǒng)登錄如何加密

隨著我國信息化建設的飛速發(fā)展,以網(wǎng)絡和數(shù)據(jù)庫技術為基礎的信息處理系統(tǒng)應用正逐步深入。但是,由于技術限制和軟件缺陷等因素,系統(tǒng)的正常運行可能會受到來自不同方面的安全威脅尤其是一些黑客總是憑借自己的破密技術非法登錄系統(tǒng),對信息系統(tǒng)造成不可估量的破壞,因而,系統(tǒng)的登錄加密技術就顯得尤為重要,所以我們必須采用一種行之有效的方法來保證系統(tǒng)登錄的安全性。

系統(tǒng)登錄如何加密

一、傳統(tǒng)的系統(tǒng)加密方式及其弊端

目前,在大多數(shù)開發(fā)的應用系統(tǒng)中,最常用的方式就是使用口令實現(xiàn)對系統(tǒng)操作權限的訪問控制。實現(xiàn)的方法就是在進入系統(tǒng)時提示操作者輸入一個字符串口令。這種口令的設置方法是將固定的口令密碼寫在程序代碼中,在系統(tǒng)開始運行時,要求操作者輸入該密碼,如果密碼正確,方可進入,否則,系統(tǒng)是不能讓操作者使用的。這種傳統(tǒng)加密方式的缺點是密碼固定,而且整個系統(tǒng)只有一個密碼。不會隨機改變,而且容易被別人破解。所以,這種傳統(tǒng)的加密方式存在極大的安全隱患。

二、一種系統(tǒng)新加密方法的提出

在設計系統(tǒng)時,也有的程序設計者針對傳統(tǒng)的系統(tǒng)加密方式采用了一種較為安全的加密方式,即將用戶在進入系統(tǒng)時輸入的口令通過加密轉換為一種稱為加密偽碼的數(shù)據(jù),存儲在數(shù)據(jù)庫中,但這種方法的密碼和偽碼仍有明顯的對應關系,容易被破解。

針對這種情況,提出了一種在我們VisualFoxPro中用隨機偽密碼存儲在數(shù)據(jù)庫中的方法,實現(xiàn)了簡單可靠的系統(tǒng)加密。這種方法的特點是實現(xiàn)簡單,加密可靠,不易破解口。

1、系統(tǒng)新加密方法的原理

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

2、生成隨機的偽密碼

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

系統(tǒng)登錄如何加密

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

3、解碼

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

系統(tǒng)登錄如何加密

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

三、用戶權限控制的實現(xiàn)

對一個包含多種業(yè)務操作的應用系統(tǒng),由于業(yè)務的要求,常需要限制不同操作者的業(yè)務操作范圍,在VFP中,可以建立一個權限數(shù)據(jù)表,表中有多個字段,分別用于存儲每個操作者的代號、姓名、偽密碼等信息,如下表所示。

系統(tǒng)登錄如何加密

系統(tǒng)主表單上的多個業(yè)務模塊由多個按鈕來實現(xiàn)啟動,那么在系統(tǒng)主表單的【確定】按鈕CLICK方法程序中添加一些判斷代碼,就可以實現(xiàn)系統(tǒng)的口令和操作權限控制。輸入工號和口令后,按【確定】,CLICK中的代碼則首先根據(jù)輸入的工號,對權限數(shù)據(jù)表中所對應記錄的口令偽碼進行解碼,得出的真碼與輸人口令一致方可進入系統(tǒng)。為了在系統(tǒng)一啟動就打開權限數(shù)據(jù)表,故要將權限表添加到主表單的數(shù)據(jù)環(huán)境中。不同工號的操作員在進入系統(tǒng)后可以白行修改自己的密碼,而管理員無法知道操作員的密碼,只能進行擦除,這一點更加提高了操作員密碼的安全性。

小知識之visual foxpro:

visual foxpro簡稱VFP,同VB、DELPHI一樣都是程序開發(fā)工具,VFP由于自帶免費的DBF格式的數(shù)據(jù)庫,在國內曾經(jīng)是非常流行的開發(fā)語言,現(xiàn)在許多單位的MIS系統(tǒng)都是用VFP開發(fā)的。