国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

關(guān)于構(gòu)建個(gè)人網(wǎng)站后臺(tái)核心技術(shù)的研究

2010-06-05 10:48:00李曉飛
電子設(shè)計(jì)工程 2010年10期
關(guān)鍵詞:字符串用戶名密文

李曉飛

(陜西鐵路工程職業(yè)技術(shù)學(xué)院 陜西 渭南714000)

隨著計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)發(fā)展,Web數(shù)據(jù)庫(kù)技術(shù)已成為在應(yīng)用系統(tǒng)中應(yīng)用廣泛的網(wǎng)站架構(gòu)基礎(chǔ)技術(shù)[1-3],Web提供了與用戶通信聯(lián)絡(luò)的有效手段,實(shí)現(xiàn)Web服務(wù)器與數(shù)據(jù)庫(kù)系統(tǒng)的連接,完成數(shù)據(jù)的處理查詢,用戶通過操作瀏覽器能夠查詢處理所需要的各種數(shù)據(jù)[4]。而網(wǎng)站項(xiàng)目的設(shè)計(jì)和開發(fā)進(jìn)入了需要強(qiáng)調(diào)流程和分工的時(shí)代,比如建立一個(gè)網(wǎng)站需要進(jìn)行需求分析、可行性分析、建立模型、網(wǎng)站測(cè)試和維護(hù)等。只有建立規(guī)范的、有效的、健壯的開發(fā)機(jī)制,才能適應(yīng)用戶不斷變化的需要,進(jìn)而達(dá)到預(yù)期的計(jì)劃目標(biāo)。這里主要針對(duì)網(wǎng)站需要實(shí)現(xiàn)的功能,對(duì)其進(jìn)行建模。前臺(tái)信息的動(dòng)態(tài)更新是通過后臺(tái)獲取相應(yīng)的欄目信息而展示的,為了防止非法入侵者進(jìn)入后臺(tái)篡改前臺(tái)顯示信息,需要對(duì)用戶登錄后臺(tái)所使用的用戶名和密碼進(jìn)行加密。

1 MD5加密算法

1.1 算法原理

MD5是Web應(yīng)用程序中最常用的密碼加密算法[5-6]。由于MD5是不可逆的,因而經(jīng)過MD5計(jì)算得到的密文不能通過逆向算法得到原文。Web應(yīng)用程序中使用MD5加密文本密碼就是為了防止直接獲得數(shù)據(jù)庫(kù)所保存的密碼。攻擊者不僅擁有數(shù)據(jù)量巨大的密碼字典,而且建立了很多MD5原文/密文對(duì)照數(shù)據(jù)庫(kù),能快速地找到常用密碼的MD5密文。然而,MD5密文數(shù)據(jù)庫(kù)所使用的是最常規(guī)的MD5加密算法:原文→MD5→密文。因此,可以使用變換的MD5算法,使現(xiàn)成的MD5密文數(shù)據(jù)庫(kù)無所作為。其常用的變換算法有:循環(huán)MD5、密文分割MD5、附加字符串干涉、大小寫變換干涉、字符串次序干涉。由于網(wǎng)站后臺(tái)使用循環(huán)MD5算法,故這里對(duì)其詳細(xì)論述。

最容易理解的變換是對(duì)一個(gè)密碼進(jìn)行多次的MD5運(yùn)算。自定義一個(gè)函數(shù),它接受$data和$times 2個(gè)形參,前者是加密的密碼,后者是重復(fù)加密的次數(shù)。實(shí)現(xiàn)這種變換有兩種算法,分別為迭代算法和遞歸算法。

1.1.1 迭代算法

1.1.2 遞歸算法

加密后的用戶名和密碼的存儲(chǔ)表如圖1所示??梢钥吹酱鎯?chǔ)表中并不是直接存儲(chǔ)用戶的用戶名和密碼,而是32位的亂碼字符,這樣即使他人非法進(jìn)入數(shù)據(jù)庫(kù)也無法直接得到正確的用戶名和密碼,從而提高了網(wǎng)站的安全性,為用戶的信息安全提供了基本保障。

圖1 用戶名和密碼存儲(chǔ)表Fig.1 User names and passwords storage table

1.2 密文分割MD5

盡管用戶的密碼是不確定的字符串,但是只要經(jīng)過一次MD5運(yùn)算后就會(huì)得到一個(gè)由32個(gè)字符組成的字符串,這時(shí)再對(duì)這個(gè)定長(zhǎng)字符串進(jìn)行變換。把這段密文分割成若干段,每段都進(jìn)行MD5運(yùn)算,然后把這堆密文連成一個(gè)超長(zhǎng)的字符串,最后再進(jìn)行一次MD5運(yùn)算,得到仍然是長(zhǎng)度為32位的密文。

1.3 附加字符串干涉

在加密過程中,附加內(nèi)容確定的字符串(比如用戶名)。干涉被加密的數(shù)據(jù),不可以用隨機(jī)字串,因?yàn)檫@樣會(huì)使原算法無法重現(xiàn)。這種算法可用于大量的用戶密碼加密,把用戶名作為附加干涉字串,攻擊者即使知道具體應(yīng)用算法,也很難生成海量的對(duì)照表,大量破譯用戶密碼也只能有針對(duì)性的為數(shù)不多的用戶。

MD5變換算法是數(shù)之不盡的[6],甚至無須自己再創(chuàng)造,就用上述5種算法互相組合就可以設(shè)計(jì)上很多算法,比如說先循環(huán)加密后再分割,并在每一段上附加一個(gè)字符串再分別加密,然后變換字符大小寫并顛倒字符串順序后連成一個(gè)長(zhǎng)字符串再進(jìn)行MD5運(yùn)算…… 這樣就能大大地增加破譯出密碼原文的難度。

如果某些漏洞,比如SQL Injection或者文件系統(tǒng)中的數(shù)據(jù)庫(kù)被下載,異致用戶密碼數(shù)據(jù)泄露,MD5變換算法就能大大地增加破譯出密碼原文的難度[7]。使網(wǎng)上很多的MD5原文/密文對(duì)照數(shù)據(jù)庫(kù)無效攻擊者用常規(guī)算法去窮舉一串由變換算法得到的密文無法辨別。當(dāng)然,MD5變換算法特別適合用于非開源的Web程序,雖說用在開源的程序中優(yōu)勢(shì)會(huì)被削弱,但是也能抑制MD5原文/密文對(duì)照數(shù)據(jù)庫(kù)的作用。

然而僅僅只對(duì)用戶登錄所使用的用戶名和密碼進(jìn)行加密是遠(yuǎn)遠(yuǎn)不夠的,因?yàn)榉欠ㄈ肭终呖赡苤苯舆M(jìn)入后臺(tái)操作,這時(shí)同樣無法保障用戶的安全,以下針對(duì)直接進(jìn)入后臺(tái)操作進(jìn)行研究。

2 session技術(shù)的實(shí)現(xiàn)

session是用戶在瀏覽某個(gè)網(wǎng)站時(shí),從進(jìn)入網(wǎng)站到瀏覽器關(guān)閉所經(jīng)過的這段時(shí)間,也就是用戶瀏覽這個(gè)網(wǎng)站所花費(fèi)的時(shí)間。

session中注冊(cè)的變量可以作為全局變量使用,這樣就可以將session用于用戶身份認(rèn)證、程序狀態(tài)記錄、頁(yè)面之間參數(shù)傳遞。實(shí)現(xiàn) session需要調(diào)用 3個(gè)函數(shù):session_start()、session_register()、session_is_registered()。 首先每個(gè)網(wǎng)頁(yè)最開始處要調(diào)用session_start(),這樣是為了啟動(dòng)系統(tǒng)的session機(jī)制;然后再登錄驗(yàn)證界面定義一個(gè)變量如$username,然后為該變量注冊(cè) session_register('usernamepwd'),并為其賦值。在另一個(gè)界面上判斷是否對(duì)該變量進(jìn)行了注冊(cè),從而防止他人直接跨過登錄界面進(jìn)入后臺(tái)操作。

2.1 session用戶身份認(rèn)證的具體實(shí)現(xiàn)

1)登錄界面驗(yàn)證

2)其他頁(yè)面

2.2 多session并發(fā)運(yùn)行的實(shí)現(xiàn)

在編寫一個(gè)進(jìn)銷存系統(tǒng)中發(fā)現(xiàn)需要讓多個(gè)用戶可以同時(shí)進(jìn)入一個(gè)php應(yīng)用程序,原來所設(shè)計(jì)靜態(tài)的唯一的session ID導(dǎo)致數(shù)據(jù)混亂。因此必須動(dòng)態(tài)生成一個(gè)唯一的session ID。采用php文件名+時(shí)間戳來生成唯一的session ID,這樣每個(gè)session就不再混亂。其源代碼如下:

用mysessionname為頁(yè)面間唯一的sessionname傳遞變量,Mysessionname不能為session的內(nèi)部變量名,因?yàn)樵趕ession開始之前就已經(jīng)存在了,Mysessionname也不能用cookie方式存放,這是因?yàn)槎鄠€(gè)session肯定會(huì)覆蓋掉原先的cookie文件,因此可以用隱含表單的域來保存。

3 結(jié) 論

研究構(gòu)建個(gè)人網(wǎng)站的后臺(tái)技術(shù),應(yīng)用改良的MD5算法確保了網(wǎng)站前臺(tái)登錄時(shí)的安全性,引入session機(jī)制有效防止了非法入侵者直接繞過登錄界面進(jìn)入后臺(tái)操作的危害,從而保障了個(gè)人網(wǎng)站安全性。

[1]鄒天思.PHP網(wǎng)絡(luò)編程標(biāo)準(zhǔn)教程[M].北京:人民郵電出版社,2009:219-221.

[2]宮垂剛.PHP實(shí)例精通[M].北京:機(jī)械工業(yè)出版社,2009:81-84,112-113,154.

[3]賀民.PHP專業(yè)項(xiàng)目實(shí)例開發(fā)[M].北京:中國(guó)水利水電出版社,2003:220-221.

[4]馮燕奎.PHP4.0與MySQL動(dòng)態(tài)網(wǎng)站編程[M].北京:清華大學(xué)出版社,2006:78-139.

[5]武欣.PHP和MySQL Web開發(fā)[M].北京:機(jī)械工業(yè)出版社,2009:100-190.

[6]魏紅國(guó).PHP+MySQL動(dòng)態(tài)網(wǎng)站開發(fā)[M].南京:東南大學(xué)出版社,2008:120-170.

[7]劉彥博.高性能網(wǎng)站建設(shè)指南[M].北京:電子工業(yè)出版社,2008:56-150.

猜你喜歡
字符串用戶名密文
一種針對(duì)格基后量子密碼的能量側(cè)信道分析框架
《護(hù)士進(jìn)修雜志》投稿程序
一種支持動(dòng)態(tài)更新的可排名密文搜索方案
基于模糊數(shù)學(xué)的通信網(wǎng)絡(luò)密文信息差錯(cuò)恢復(fù)
機(jī)智的快遞員
云存儲(chǔ)中支持詞頻和用戶喜好的密文模糊檢索
一種新的基于對(duì)稱性的字符串相似性處理算法
依據(jù)字符串匹配的中文分詞模型研究
一種針對(duì)Java中字符串的內(nèi)存管理方案
小改字符串讓殺毒軟件閉嘴
灵川县| 正安县| 永登县| 陆良县| 攀枝花市| 郯城县| 河间市| 德格县| 绥棱县| 安陆市| 城口县| 阿拉尔市| 沈阳市| 鹰潭市| 汝城县| 石阡县| 邮箱| 平乡县| 普兰店市| 福州市| 东辽县| 平泉县| 神木县| 丹寨县| 定陶县| 台中市| 昌邑市| 句容市| 内江市| 磴口县| 赫章县| 正蓝旗| 宜昌市| 惠水县| 容城县| 崇仁县| 萨迦县| 吉木乃县| 尼勒克县| 高邑县| 容城县|