隨著計算機技術的廣泛應用,它與人們的生活越來越密不可分。特別是近幾年各行業為了提高服務質量、方便廣大客戶,紛紛推出各種磁卡和IC卡,各種類型的磁卡、IC卡已經成為人們的日常生活中不可缺少的組成部分,如各種銀行信用卡、電話卡、乘車卡、200卡等。
各種卡進入人們生活,確實給人們的生活帶來極大的方便,然而其中也存在著風險,你是否意識到其中的風險?筆者就面向用戶的應用系統中的密碼設計和密碼使用中存在的一些問題提出來,供軟件開發人員和廣大用戶參考。
一、 應用程序開發中密碼的設計重要性
各種應用程序,特別是管理程序,為了數據的保密、可靠、準確,不論是系統管理人員還是用戶對系統的訪問,都必須是一個合法的用戶,且能提供正確的密碼,才能對系統進行相應權限的操作。對于目前使用的各種類型卡,卡號就代表了合法用戶,一旦卡丟失,唯一的制約關系就取決于密碼,因此在各類卡的管理應用程序的設計中,密碼設計尤為重要。
由于密碼對數據的安全性起著關鍵作用,因此密碼的保存更為重要,F大多數管理型的應用系統的數據都是保存在不同類型的數據庫中,為了安全起見,數據庫中保存的密碼應是經過加密處理。一般的加密過程如下圖:
象SQL Server等數據庫就提供了這種密碼加密功能,但有些數據庫,象FoxPro等就必須在程序設計時,利用程序對密碼數據進行加密處理后才能保存在數據庫中。
二、 密碼可選元素、密碼的長度與密碼破譯的關系
若可選密碼元素為n、密碼長度為r,則密碼的破譯的概率為多少?
如果從n個元素中取r個元素的選排列,
則A=n(n-1)...(n-r+2(n-r+1)
若r=n則為全排列
則Pn=n(n-1)...2*1=n!
若一個元素被選后,仍然可以允許再次被選就為“允許重復排列”。
則密碼可選元素為n,密碼長度為r的“允許重復排列”排列數為:nr
r
若密碼長度為k~r(k≤r),則可能出現的排列數為:∑nI
延伸閱讀
文章來源于領測軟件測試網 http://www.anti-gravitydesign.com/