国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > 綜合 > 正文

可靠隨機密碼和多用戶權限控制在VFP中的實現

2024-07-21 02:05:20
字體:
來源:轉載
供稿:網友

    在應用系統中,經常使用口令實現對系統操作權限的控制,常規的方法是在進入系統時提示操作者輸入一個字符串口令。這種口令的設置方法多種多樣,有的是將固定口令密碼寫在程序里,系統開始要求操作者輸入該密碼,正確方可進入,這種方法的缺點是密碼不能改變,且全系統只有一個。還有一種方法是將操作者輸入的密碼通過加密,轉換為加密偽碼存儲在數據庫中,但這種方法的密碼和偽碼仍有顯式的對應關系,容易被破解。本文介紹一種在vfp中用隨機偽碼存庫的方法實現簡單可靠的系統加密,并用此方法實現一個應用系統的多用戶權限控制,這種方法的特點是實現簡單,加密可靠,不易破解,可將一個1至7位的用戶密碼轉換為20位的隨機偽碼,且每次重新設定密碼時所產生的偽碼都不相同,通過變換生成的20位偽碼沒有任何規律性,即使從數據庫中擦除偽碼也無法進入系統,從而實現了可靠的密碼權限控制。

---- 一、可靠的隨機偽碼存庫

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

func mazh1
para zmz
zmz=val(zmz)
n1=rand()*10^9
if n1<=999999999
n1=n1+10^9
endi
n1=int(n1)
c1=str(n1+zmz)+str(n1)
c2=subs(c1,5,20)+subs(c1,1,4)
p1=''
p2=''
for ii=1 to 10
p1=p1+subs(c2,2*ii-1,1)
p2=p2+subs(c2,2*ii,1)
endfor
wmz=p1+p2
retu wmz
---- 若真碼為:1234567,則偽碼為:64915302152868193982,無論真碼是一位還是相同多位,偽碼總是具有同樣的不確定性和復雜性,所以若想通過簡化真碼來分析偽碼是不可能的。

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

func mazh2
para wmz
pp=''
for ii=1 to 10
pp=pp+subs(wmz,ii,1)+subs(wmz,ii+10,1)
endfor
dd=subs(pp,17,4)+subs(pp,1,16)
m1=subs(dd,1,10)
m2=subs(dd,11,10)
zmz=int(val(m1)-val(m2))
retu zmz
---- 由于提交的系統全是編輯的,非法者是無法得到密碼轉換函數中的信息的,所以解密方法是不易被發現的。

---- 二、多用戶權限控制的實現

---- 對一個包含多種業務操作的應用系統,由于業務的要求,常需要限制不同操作者的業務操作范圍,在vfp中,可以建立一個權限數據表,表中 有多個字段,分別用于存儲了每個操作者的代號、姓名、口令以及是否可以操作業務模塊的偽標識碼,見下表:

工號  姓名      系 統 口 令  
業務1操作標識碼   業務2操作標識碼 …
01 劉君紅 71510714108669886598 75913
759130063600536 02817028179076390563 …
02 何晚平 17615822156435449957 8341
3834133074230642 56314563144262342423 …
03 劉棋東 16710714110199886591 044
18701188588160484 83413834133074230642 …
04 趙民 58613143131858393185 4611702
8171696390565 48710144103584210444 …
05 王雪菲 80614563147782342425 52412
171122488399485 53210299114872812320 …
… …
---- 系統的主表單上的多個業務模塊由多個按鈕來實現啟動,那么在系統主表單的[確定]按鈕的click event方法程序中添加一些判斷代碼,就可以實現系統的口令和操作權限控制。輸入工號和口令后,按[確定],click event中的代碼首先根據輸入的工號,對權限數據表中對應記錄的口令偽碼進行解碼,得出的真碼與輸入口令一致放可進入系統,口令測試通過后,再通過對每個業務所對應的偽標識碼字段內容進行解碼,確定該業務模塊是否允許操作,進而將該模塊的啟動按鈕的enabled屬性設置為.t.或.f.。為了在系統一啟動就打開權限數據表,要將權限表添加到主表單的數據環境中。主表單的一個按鈕可以啟動“權限維護”表單,該表單可以完成對每個工號的口令和操作權限設置。一般只有系統管理員被賦予“權限維護”的權限,不同工號的操作員在進入系統后可以自行修改自己的密碼,而管理員無法知道操作員的密碼,只能進行擦除,這一點更加提高了操作員密碼的安全性。

---- 以上表單和程序在金長城pii/400機上用visual foxpro5.0調試通過

技術交流 永無止境

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 铜川市| 阳春市| 宣城市| 方城县| 龙门县| 乌拉特前旗| 泸水县| 唐海县| 白城市| 洪洞县| 兰考县| 石门县| 香河县| 青龙| 开化县| 康保县| 庆城县| 天全县| 文水县| 孟州市| 五寨县| 营山县| 西盟| 辽阳县| 天长市| 沐川县| 武陟县| 南靖县| 井陉县| 特克斯县| 阿尔山市| 循化| 卢氏县| 勐海县| 西峡县| 禄劝| 潼关县| 岚皋县| 崇文区| 宁晋县| 太原市|