基於ACSII碼及隨機數的使用者口令認證方案的設計

2022-11-10 18:36:03 字數 3725 閱讀 6914

總第257期

2011年第3期

計算機與數字工程

102基於acsii碼及隨機數的使用者口令認證方案的設計易瑁

邱美嫻廣州 510006)

(廣東藥學院醫藥資訊工程學院

摘要提出一種方便、簡單的基於口令ascii碼與隨機數求和的認證演算法,實現對使用者口令進行加密解密的口令認

****。加密演算法基本思想是利用兩個隨機數與使用者口令相對應的ascji編碼之和得到密文序列。解密演算法的基本思想則是通過金鑰串切割密文序列,減隨機數求差等加密逆過程來實現。

關鍵詞口令認證;ascii碼;隨機數;安全性

中圖分類號

tp393

1 引言

在開發管理系統或者web應用中,必然涉及到使用者賬號的安全性問題。通常,使用者賬號資訊儲存在系統相應的資料庫中,如果使用者的口令直接以明文形式儲存在資料庫中,所有有權訪問資料庫的人都可以得到其他人的口令_】]。口令的洩露將導

本文提出一種簡便的基於ascii的加密方案,用於使用者口令的加密。

2設計思想

本文對使用者口令限定為4~16位數字、字母或者它們的組合。加密演算法的基本思想是利用使用者

口令的ascii碼與系統產生的兩個隨機數求和。解密演算法是根據當前使用者賬號在資料庫中提取相應口令密文序列進行切割及減運算等操作得到口

令的明文序列。

致使用者賬號被盜用、重要資訊外洩等。更甚地,如果資料庫受到黑客的攻擊,那所有使用者的口令都將外洩[2叫]。針對這樣的問題,通常的解決方法是在

資料表中不直接存放口令的明文,而是採用一些演算法對使用者口令進行加密,將加密後的密文序列儲存。這樣,使用者口令就多了一層保護膜,資訊得到更好的保護e。

在演算法的闡述過程中,用到以下符號:

1)pswd表示使用者口令;

2)z、y分別表示兩位隨機數;

表示ascii碼與隨機數的和;

*收稿日期:2010年9月21目,修回日期:2010年1o月23日

作者簡介:易琚,女,碩士,講師,研究方向:中醫藥資訊、資料庫應用。

2011年第3期計算機與數字工程1o3

4)s表示各個單位口令的密文序列;

和pwdl表示口令加密後的密文序列;

具體演算法描述如下:

1)在資料庫中提取出當前使用者帳號對應的密文序列pwdl跟金鑰pwd2。

2)根據系統預設位數,在pwdl中擷取兩個隨機數z和 ,並將它們從字元型轉換成整型。

和pwd2表示用來解密的金鑰

序列。2.1加密演算法流程

3)將pwd2強制轉換成其等效的byte[ ̄型,放在array[i ̄中。

4)根據array[i ̄的值作長度切割

以求得各個單位口令s。

加密演算法的思想是將口令明文轉換成相應的ascii碼,同時,產生兩個位數確定的隨機數,將第

偶數字ascii碼與第一位隨機數相加求和,第奇數字ascii碼與第二個隨機數相加求和。將每個和

轉換為字串型別按次序儲存到字串asciistrl中,再將兩個隨機數分別轉換成字串型別分別追加到asciistrl的最前面和最後面。在轉換過程中取得各個和的長度,將長度值轉換成等效的字串型別依次儲存到asciistr2中。此時,得到口令加密後的密文序列asciistrl和金鑰序列(密文長

度序列串

具體演算法描述如下:

1)對pswd進行ascii編碼得到產生兩個隨機數和 。當i2一===0,

當3)將每個asciicode強制轉換成字串型別。

同時,求asciicode的長度值length並轉換型別成字串型別,初始密文序列金鑰序列asciistr2一

length。

4)將 ,強制轉換成等效的string型別,最終密文序列

5)將asciistrl和asciistr2儲存到資料庫

中。2.2解密演算法流程

根據登入使用者當前輸入的賬號,在資料庫中找到相對應的將從資料庫中取出。分別擷取asciistrl最前面兩位字元和最後一位字元,即為第一位隨機數和第二位隨機數。根據asciistr2每位字元轉換的等效整型值(即每位口令的有效長度值)依次

切割截去隨機數後的得到每位有效口

令。將每位和減去相應的隨機數,第偶數字減去第

一位隨機數,第奇數字減去第二位隨機數。得到差

為每位口令明文的ascii碼值。最後再將ascii碼依次序逆轉換追加編成字串,即得解碼後口令

的明文串。

5)將強制轉換成其等效的整型,當2--===

0,s— —z;當

6)將每個5轉換成其等效的字串型別,p一

+s。7)返回 ,將戶與當前使用者輸人的pswd進行

匹配驗證。

3 演算法實現

加密和解密演算法在asp.net平台上用c#語言實現。將加密功能和解密功能做成乙個自定義控制項,可方便程式設計者使用。下面將列出部分

主要**。

3.1加密函式**摘要

(pswd);一{

if(i

2一一o){一

icode);一}

else{}

}一104易琚等:基於acsii碼及隨機數的使用者口令認證方案的設計第39卷

3.2解密函式**摘要

1);for(int i一

{if(i%2一一o)

{s—s~x;)

array2[i]一

)string p—

return p;

}4方案特性及其安全性分析

1)保護使用者口令。在使用者賬號資料庫中不直接儲存使用者口令,而是存放口令加密後的密文序

列,有效地保護了使用者口令。

2)有效抵禦黑客的「字典攻擊」。本文提供的

口令認證方案在資料庫中儲存的是字串型別的口令密文和缺失的金鑰序列。即使黑客得到訪問資料庫的機會,他得到的只是密文序列和缺失的金鑰序列。這給黑客解碼造成一定難度。

3)金鑰不完整。本方案採取金鑰分放的方

法。用於運算的金鑰(即隨機數z、)隱藏在密文

序列中;而用於分割單位口令的金鑰(即單位口令長度值)儲存在pwd2中,但此金鑰卻又不包含隨機數的數字。密文包含了金鑰,金鑰不完整對應密文。這讓資料庫訪問者無法獲取完整、正確的金鑰,難以解密。

資料保密性增強。

4)加密演算法可逆。根據使用者賬號獲取資料庫中儲存的口令密文序列和缺失的金鑰序列,再根據系統預設的隨機數數字及位置即可完成解密工作。

5)演算法簡單。只運用了ascii碼的編碼和隨機數的加、減運算。沒有紛繁的計算過程,節省系

統空間和提高執行效率。

5 結語

根據本文所述演算法,在asp.net平台上實現口令認證器,以自定義方式提供給程式設計者使用。這種口令認證器操作簡單方便,且使得使用者的資訊得到了更好的保護,提高了系統的安全性、保密性。經測試,該口令認證器能可靠的完成使用者口令加密解密的任務。

參考文獻

[1]柯芳芳,唐西林,章啟恆.對乙個口令認證協議的可攻

擊性分析和改進l-j].計算機工程

[2]徐成強,李作維.改進的一次性口令認證方案[j].計算

機工程[3]馬剛勇,權建校,韓文報.安全口令生成器的設計與實

現_j].資訊保安與通訊保密,2008(10)

[4]陳淳鑫,閻光.md5演算法在bs結構下口令驗證中的應

用口].微型機與應用

[5]鄧亞玲,胡元義,王新房.基於hash函式的使用者口令保

護方法的研究[j].計算機工程

[6]葉錫君.一次性口令認證的分析與改進[j].計算機工

程,2009(9)

[7]陳偉,衛琳**開發例項教程[m].北

京:清華大學出版社,2009,3

[8]馬金虎資料庫程式設計之一一資料庫連線

全接觸[j],電腦程式設計技巧與維護,2002(8)

OfficeExcel的隨機數設定技巧

excel 隨機數 取餘隨機數rand 語法rand rand函式詳解 返回大於等於 0 及小於 1 的均勻分布隨機實數,每次計算工作表時都將返回乙個新的隨機實數。註解 若要生成 a 與 b 之間的隨機實數,請使用 rand b a a 公式 rand 1000 返回乙個大於等於0 小於1000的隨...

3 2 2隨機數的產生 2

3.2.2 隨機數的產生 練習二一 選擇題 1 下列事件 1 方程有兩個不相等的實數根 2 在標準大氣壓下,溫度低於,並融化 3 某傳呼臺每天的某一時段內受到傳呼的次數不超過10次 4 物體在重力作用下會自由下落 隨機事件的個數是 a 1個b 2個c 3個d 4個 2 把紅 黑 白 藍4張紙牌隨機地...

3 3 2均勻隨機數的產生

3.3.2 幾何概型的應用與均勻隨機數的產生 學習目標 1.理解並掌握幾何概型的概率公式和其應用解題的關鍵 2.掌握利用計算器 計算機 產生均勻隨機數的方法 3.會利用均勻隨機數解決具體的有關概率的問題 重點難點 重點 1.應用幾何概型概率公式解決幾何概型問題 2.掌握利用計算器 計算機 產生均勻隨...