向普通人加密 用PHP程序保護數(shù)據(jù)_PHP教程
推薦:用PHP實現(xiàn)Ftp用戶的在線管理領(lǐng)導(dǎo)要我策劃一個網(wǎng)頁設(shè)計大賽和Flash創(chuàng)作大賽,要求必須實現(xiàn)在線報名和上傳作品。通過FreeBSD Apache PHP Mysql FTP我實現(xiàn)了該要求。 實現(xiàn)在線報名和上傳作品的思路是利用網(wǎng)頁表單收集用戶
在這個日漸虛擬的互聯(lián)網(wǎng)世界中,您必須小心保護自已的數(shù)據(jù)。本文將介紹編碼和加密一些重要信息(比如密碼、信用卡號、甚至整個消息)的基礎(chǔ)知識。并通過使用 PHP 的內(nèi)置功能,了解加密和解密信息的意義,并且將了解一些涉及密碼和其他數(shù)據(jù)的實際示例。
了解當(dāng)今現(xiàn)實世界與 20 年前的現(xiàn)實世界的不同。在 20 世紀(jì) 80 年代,加密是一種特工人員的行為 —— 是您在 Tom Clancy 的偵探小說中才可以讀到的情節(jié)。如果某人想保持少量私有信息,那么他必須使用密碼、密碼短語或其他基本方法對數(shù)據(jù)進行加密。
而現(xiàn)在,加密遍布各個領(lǐng)域。密碼也被加密保存在數(shù)據(jù)庫中。電腦空間中的加密的通道可能是通過 SSL、SSH 和其他技術(shù)加密的 —— 更不必說擬虛專用網(wǎng)絡(luò)。人們平�?梢远乙欢軌蚴褂� Pretty Good Privacy (PGP) 來保護敏感的文件和電子郵件。
作為一名 PHP 開發(fā)人員,您應(yīng)該知道,強有力的安全做法并不是只將安全保護用于獨特的應(yīng)用程序 —— 還可以將其用于您當(dāng)前從事的項目。用戶要樹立從一般加密方法(例如,在登錄頁上的密碼字段中不顯示明文)過渡到各種高級加密方法(如 DES、MD5、SHA1 和 Blowfish)的意識。
因時間和篇幅所限,這里無法討論加密的各個方面,但是您將從這里了解涵蓋適用于您的多數(shù)情況的基本內(nèi)容。我們通過使用 PHP 內(nèi)置功能先了解加密和解密信息的意義,進而了解涉及密碼和其他數(shù)據(jù)的一些實際示例。在本文中,加密是在更大的安全上下文中進行討論的。最后,將介紹其他 PHP 擴展和插件。
加密技術(shù)的初級讀本
作為希臘的詞根資產(chǎn),加密技術(shù)是一種 “神秘編寫” 藝術(shù)。凱撒密碼 是最古老的一種密碼,形式也最為簡單。它采用明文消息,將字母移動 n 個位置,從而產(chǎn)生暗文。例如:
明文:Veni Vidi Vici
暗文:Xgpk Xkfk Xkek
通過檢查暗文并借助一些啟發(fā)式的技巧,您可以知道,明文實際上是移動了兩個字符。凱撒密碼很容易破解。例如:檢查上述信息,可知 X 重復(fù)了多次,且 k 也是如此。這就變成猜迷,確定多少個四字母的詞有那樣多的元音。知道了這些帶元音的詞后,您就知道了移動其余字的方法。它還可以幫助您判斷明文是否為拉丁文,讓您對其有大致的了解。
現(xiàn)代加密技術(shù)的功能非常強大,使用了超越統(tǒng)一移動字母和符號的算法。本文不打算詳細(xì)介紹這些算法,僅介紹一些 PHP 安裝,它包括您需要適度(或特別)保持?jǐn)?shù)據(jù)安全的所有內(nèi)容。
不存在 100% 不受攻擊的絕對完整的加密方法。大概每隔一個月,一些黑客及其朋友就會集合 1,000 臺計算機,在最初的幾天里強力進行計算破壞,從而使最新的加密方法崩潰。不過,您可以密封您的系統(tǒng)和數(shù)據(jù),不讓黑客干擾和非法闖入。他們將在其他地方尋找可乘之機。
了解這些內(nèi)容之后,讓我們轉(zhuǎn)而了解那些受簡單登錄形式保護的示例 PHP 應(yīng)用程序。
沒有安全保障或加密的 PHP 形式處理
假定您是一位新的 Web 應(yīng)用程序開發(fā)人員,沒有更多的機會使用安全功能。您創(chuàng)建了您的第一個應(yīng)用程序,它可以在專用用戶表中存儲用戶名和密碼,但是,您沒有對這些密碼進行加密。這些密碼以一眼就看明白的形式存在,任何人都可以使用它們訪問數(shù)據(jù)庫。您可以構(gòu)建一個如下所示的登錄頁面。
清單 1. 簡單的登錄頁面
| 以下為引用的內(nèi)容: <form action="verify.php" method="post"> <p><label for='username'>Username</label> <input type='text' name='username' id='username'/> </p> <p><label for='password'>Password</label> <input type='text' name='password' id='password'/> </p> <p><input type="submit" name="submit" value="log in"/> </p> </form> |
此 HTML 標(biāo)記存在什么問題?為密碼字段選擇的輸入類型為 text,這意味著用戶鍵入該字段的任何內(nèi)容都會以明文形式顯示在屏幕上。
分享:用PHP程序?qū)崿F(xiàn)刪除目錄的三種方法實例1。遞規(guī)法: //沒測試 以下為引用的內(nèi)容: deleteDir($dir) { if (rmdir($dir)==false && is_dir($dir)) { if ($dp = opendir($dir)) { w
- 相關(guān)鏈接:
- 教程說明:
PHP教程-向普通人加密 用PHP程序保護數(shù)據(jù)
。