<pre id="bbfd9"><del id="bbfd9"><dfn id="bbfd9"></dfn></del></pre>

          <ruby id="bbfd9"></ruby><p id="bbfd9"><mark id="bbfd9"></mark></p>

          <p id="bbfd9"></p>

          <p id="bbfd9"><cite id="bbfd9"></cite></p>

            <th id="bbfd9"><form id="bbfd9"><dl id="bbfd9"></dl></form></th>

            <p id="bbfd9"><cite id="bbfd9"></cite></p><p id="bbfd9"></p>
            <p id="bbfd9"><cite id="bbfd9"><progress id="bbfd9"></progress></cite></p>

            VFP中數據表加密簡單算法

            時間:2025-10-31 00:07:04 信息安全畢業論文

            VFP中數據表加密簡單算法

              VFP中數據表加密簡單算法

              摘要:Microsoft Visual FoxPro(以下簡稱為VFP)作為小型數據庫管理系統的杰出代表[1],用其進行小型數據庫系統的設計比較簡單、方便,但同時有一個比較突出的問題:VFP沒有像其它數據庫那樣提供密碼訪問功能,數據保密性不強。

              提出了一種可行的簡單方法,對VFP中的數據表進行加密與解密,以期在實際應用中,加強數據的安全性。

              關鍵詞關鍵詞:VFP;數據表;DBF;加密;解密;算法

              1加密必要性

              VFP中所有信息以二維表(DBF格式文件)形式組織并存放,由于VFP本身的數據保密功能較弱,沒有提供密碼訪問的保護功能,因此利用VFP對數據進行管理時,面臨一個較為嚴重的安全問題:任何用戶只要進入數據庫管理系統后均可以直接使用VFP自由地打開、修改甚至刪除數據庫系統中的數據表文件。

              而數據表作為存儲信息的主要數據文件,一旦被毫無限制地訪問、修改,將對數據庫系統造成致命的破壞。

              因此,在利用VFP設計數據管理系統時,必須采取有效手段對數據庫系統中的數據表進行加密與解密。

              2加密基本原理

              2.1DBF文件基本結構

              DBF數據結構分為兩部分:頭記錄(header record)部分和數據記錄(data record)部分。

              頭記錄從文件0位置開始,定義數據表的結構以及與其它數據有關的信息;數據記錄部分緊接在頭記錄之后,包含了數據表的實際數據內容。

              而VFP本身提供多個底層函數,可以方便靈活地將DBF文件以低級格式打開,并對文件頭句柄進行訪問和操作。

              2.2加密、解密基本過程

              數據加密就是把數據信息(即明文)轉換為不可辨識的形式(即密文)的過程,目的是讓非法人員不能識別,反之,將密文轉變為明文的過程就是解密[2]。

              目前對VFP中數據表進行加密常用的方式是:使用隨機偽碼加密、使用VFP本身的底層函數加密等,本文主要利用VFP提供的底層函數和異或算法對數據表加密和解密,此方法簡單、利于實現(該方法后文中簡稱為FX算法)。

              異或運算最大的特點就是A^B^B=A,也就是說,當對同一個數進行2次相同的異或運算時,結果還是這個數[3]。

              因此利用異或算法的特征,可以使用VFP提供的底層函數打開數據表文件,并利用密鑰對其進行首次異或運算得到密文,此時,數據表文件的數據已被改變。

              因此,直接打開該表時,將會提示非正常表文件;解密時利用密鑰對密文進行第二次異或運算,根據異或運算的特征,數據表文件在進行第二次異或運算后,將還原為初始數據(即還原為明文),此時可以正常打開并訪問數據表。

              基本過程如圖1所示。

              3加密模型實現

              以設計一個較為簡單的教務管理系統加密程序為例,教務系統的主要數據包括:學生表student.dbf、教師表teacher、成績表score,均通過數據庫admin.dbc建立連接,進行統一管理。

              系統登錄模塊中通常為學生、教師、管理人員等多個不同的登錄端口,如不采用適當的加密措施,造成的結果為:學生登錄成功后,可以隨意打開各個DBF數據表,甚至可以對其進行修改。

              加密的主要目的為:管理員退出數據庫管理系統時,調用相應的加密模塊,利用指定的密鑰對數據庫中的數據表文件進行異或運算,將其轉換為普通用戶不能識別的密文,使其不能訪問已加密的數據表;進入數據庫管理系統時,再次調用解密模塊,利用密鑰將已加密的密文轉換為明文,使用戶能夠正常訪問數據表。

              4結語

              本文討論的FX算法加密方式主要使用VFP本身的底層函數和異或運算對數據表進行加密,算法簡單有效;密鑰可以定期更換,且加密后的數據只需利用密鑰通過簡單的再次異或運算即可解密;該方法始終是在內存中進行的,故即使系統出錯,重新啟動系統也無妨,同時加密與解密模塊的代碼基本相同,無需分別定制單獨的加密與解密模塊,對于小型的VFP數據系統來說,是一種較為實用和有效的安全保護方法。

              參考文獻:

              [1]王利.Visual FoxPro程序設計[M].北京:高等教育出版社,2006.

              [2]段鋼.加密與解密[M].北京:電子工業出版社,2003.

              [3]車紫輝.VFP中DBF表的加密和解密方法[J].保定學院學報, 2010,23(3):5355.

            【VFP中數據表加密簡單算法】相關文章:

            排序算法的算法思想和使用場景總結11-20

            算法結題報告01-24

            在經歷中成長作文:簡單?不簡單!02-25

            簡歷中簡單的自我評價12-10

            面試中簡單的自我介紹11-12

            簡歷中簡單的自我介紹12-02

            面試中的簡單自我介紹10-15

            簡單的生活中的語錄集合96句02-21

            簡單的生活中的語錄匯編90條01-25

            簡單的生活中的語錄集合66條01-19

                    <pre id="bbfd9"><del id="bbfd9"><dfn id="bbfd9"></dfn></del></pre>

                    <ruby id="bbfd9"></ruby><p id="bbfd9"><mark id="bbfd9"></mark></p>

                    <p id="bbfd9"></p>

                    <p id="bbfd9"><cite id="bbfd9"></cite></p>

                      <th id="bbfd9"><form id="bbfd9"><dl id="bbfd9"></dl></form></th>

                      <p id="bbfd9"><cite id="bbfd9"></cite></p><p id="bbfd9"></p>
                      <p id="bbfd9"><cite id="bbfd9"><progress id="bbfd9"></progress></cite></p>
                      飘沙影院