摘 要: 在軟件系統(tǒng)設計中經常需要對某些數據文件進行加密操作,如對保存用戶名和密碼的表文件進行加密,通過低級文件函數改寫文件表頭部分的文件指針位置可以達到加密的效果。但是僅僅考慮到文件加密是不夠的,所以在系統(tǒng)運行的過程中也要有解密的過程。
關鍵詞: Visual Foxpro 低級文件函數 加密表文件 解密
在軟件系統(tǒng)設計中經常需要對某些數據文件進行加密操作,例如在某個實例系統(tǒng)中設計一個登錄界面,該登錄界面需要輸入用戶名和密碼,而用戶名和密碼保存在一個名為“管理員.dbf”的數據表文件中。程序會自動打開“管理員.dbf”表文件,根據輸入的用戶名和密碼搜索表中是否有匹配的記錄,若有則登錄成功,否則無法進入系統(tǒng)。
那么如果保存用戶名和密碼的“管理員.dbf”表文件沒有被加密,在VFP中一般數據表都可以通過USE命令隨時被打開,則該登錄界面就失去了意義,所以應該對“管理員.dbf”表文件進行加密,表被加密以后,不能通過USE命令打開,保證了表的安全性。
通過低級文件函數改寫文件表頭部分的文件指針位置可以達到加密的效果。但是僅僅考慮到文件加密是不夠的,在登錄過程中需要使用“管理員.dbf”保存的用戶名和密碼進行搜索匹配,如果“管理員.dbf”被加密,則會因為無法打開“管理員.dbf”而不能執(zhí)行登錄過程。所以在系統(tǒng)運行的過程中也要有解密的過程,當登錄過程結束后還應及時將“管理員.dbf”再加密。
以我開發(fā)的監(jiān)理人員查詢系統(tǒng)為例,該系統(tǒng)菜單有一項為“顯示所有記錄”菜單,功能是顯示“監(jiān)理.dbf”中所有的人員信息,顯示信息之前會調用“系統(tǒng)登錄”表單,只有輸入正確的用戶名和密碼才能顯示所有人員信息,事先將“管理員.dbf”通過低級文件函數改寫文件表頭部分的文件指針位置進行加密,代碼如下:
dbfname=getfile(?謖db