亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

PHP中的MD5加密

互聯(lián)網(wǎng)   發(fā)布時間:2008-10-08 19:04:55   作者:佚名   我要評論
綜述:密碼學是研究編制密碼(我們簡稱為加密:encode)和破譯密碼(我們稱之為解密:decode)的技術科學。研究密碼變化的客觀規(guī)律,應用于編制密碼以保守通信秘密的,稱為編碼學;應用于破譯密碼以獲取通信情報的,稱為破譯學,總稱密碼學。通常情況下,人們將可懂的文本
綜述:密碼學是研究編制密碼(我們簡稱為加密:encode)和破譯密碼(我們稱之為解密:decode)的技術科學。研究密碼變化的客觀規(guī)律,應用于編制密碼以保守通信秘密的,稱為編碼學;應用于破譯密碼以獲取通信情報的,稱為破譯學,總稱密碼學。通常情況下,人們將可懂的文本稱為明文;將明文變換成的不可懂的文本稱為密文。把明文變換成密文的過程叫加密;其逆過程,即把密文變換成明文的過程叫解密。
??PHP中提供了哪些數(shù)據(jù)加密功能?
??PHP提供了crypt()函數(shù)完成加密功能:
????string crypt (string input_string [, string salt])
??這一函數(shù)完成被稱作單向加密的功能,也就是說,它可以加密一些明碼,但不能夠將密碼轉換為原來的明碼。單向加密的口令一旦落入第三方人的手里,由于不能被還原為明文,因此也沒有什么大用處。在驗證用戶輸入的口令時,用戶的輸入采用的也是單向算法,如果輸入與存儲的經(jīng)加密后的口令相匹配,則輸入的口令一定是正確的。
??這個函數(shù)的input_string參數(shù)是需要加密的字符串,第二個參數(shù)salt是一個位字串,它能夠影響加密的暗碼,進一步地排除被稱作預計算攻擊的可能性。缺省情況下,PHP使用一個2個字符的DES干擾串,如果你的系統(tǒng)使用的是MD5 ,它會使用一個12個字符的干擾串。我們可以通過執(zhí)行下面的命令發(fā)現(xiàn)系統(tǒng)將要使用的干擾串的長度:
????print "系統(tǒng)使用的干擾串的長度是:". CRYPT_SALT_LENGTH;
??crypt()支持四種算法,下面是它支持的算法和相應的salt參數(shù)的長度:
[注:以下用表格]
算法 Salt長度
CRYPT_STD_DES 2-character (默認)
CRYPT_EXT_DES 9-character
CRYPT_MD5 12-character beginning with $1$
CRYPT_BLOWFISH 16-character beginning with $2$
??怎樣將PHP的數(shù)據(jù)加密功能應用于用戶驗證?
??我們用crypt()實現(xiàn)用戶身份驗證。比如我們用一段PHP程序限制對一個目錄的訪問,只允許注冊用戶訪問這一目錄。我們把資料存儲MySQL數(shù)據(jù)庫的一個表(這個數(shù)據(jù)表名為members)中:
????mysql>CREATE TABLE members (
????->username CHAR(14) NOT NULL,
????->password CHAR(32) NOT NULL,
????->PRIMARY KEY(username)
????->);
??然后,我們可以輸入用戶的數(shù)據(jù)到該表中:
用戶名 密碼
Tom keloD1C377lKE
John ba1T7vnz9AWgk
Bill paLUvRWsRLZ4U
??這些加密的口令對應的明碼分別是Tom、John和Bill。我們將根據(jù)口令的前二個字母創(chuàng)建干擾串:
????$enteredPassword.
????$salt = substr($enteredPassword, 0, 2);
????$userPswd = crypt($enteredPassword, $salt);
????// $userPswd然后就和用戶名一起存儲在MySQL 中
??crypt()和Apache的口令-應答驗證系統(tǒng)的應用
????<?php
????$host = "localhost"; //主機
????$username = "Tom"; //用戶名
????$passwd = "Hello world"; //密碼
????$db = "users"; //數(shù)據(jù)庫名
????// 設置是否通過驗證標志,默認為否
????$authorization = 0;
????// 提示用戶輸入帳號和密碼
????if (isset($PHP_AUTH_USER) && isset($PHP_AUTH_PW)){
??????mysql_pconnect($host, $username, $passwd) or die("不能連接到MySQL服務器!");
??????mysql_select_db($db) or die("不能選擇數(shù)據(jù)庫!");
??????// 進行加密
??????$salt = substr($PHP_AUTH_PW, 0, 2);
??????$encrypted_pswd = crypt($PHP_AUTH_PW, $salt);
??????//SQL查詢語句
??????$query = "SELECT username FROM members WHERE username = \'$PHP_AUTH_USER\' AND password = \'$encrypted_pswd\'";
??????// 執(zhí)行查詢
??????if (mysql_numrows(mysql_query($query)) == 1) {
????????$authorization = 1;
??????}
????}
????if (! $authorization){
??????header(\'WWW-Authenticate: Basic realm="用戶驗證"\');
??????header(\'HTTP/1.0 401 Unauthorized\');
??????print "無法通過驗證";
??????exit;
????}else {
??????print "已經(jīng)加密";
????}
?????>
??在缺省狀態(tài)下使用的 crypt()并不是最安全的,所以如果需要較高的安全性能,就需要其他更好的算法,比如md5(),這一函數(shù)使用MD5散列算法。
??如何通過MD5方式進行加密?
??PHP中通過MD5方式加密的函數(shù)有md5(),它的一個作用是混編。
??一個混編函數(shù)可以將一個可變長度的信息變換為具有固定長度被混編過的輸出,也被稱作"信息文摘",這是十分有用的,因為 一個固定長度的字符串可以用來檢查文件的完整性和驗證數(shù)字簽名與用戶身份。PHP內(nèi)置的md5()混編函數(shù)將把一個可變長度的信息轉換為128位(32個字符)的信息文摘。混編的一個有趣的特點是:不能通過分析混編后的信息得到原來的明碼,因為混編后的結果 與原來的明碼內(nèi)容沒有依賴關系。即便只改變一個字符串中的一個字符,也將使得MD5混編算法計算出二個截然不同的結果。我們首先來看下表的內(nèi)容及其相應的結果:
??使用md5()混編字符串
????<php
????$input = "Hello,PHP world!";
????$output = md5($input);
????print "輸出: $output ";
?????>
??結果:
????輸出: 7996b5e0804042fd531907a4900f190e
??注意,結果的長度為32個字符。我們把$input的值稍微改變一下:
??使用md5()對一個稍微變化的字符串進行混編
????<?php
????$input = "Hello,PHP World!";
????$output = md5($input);
????print "輸出: $output ";
?????>
??結果:
????hash2: f0456d48ed06a5c35b1e42561fa7a016
??可以發(fā)現(xiàn),盡管二個結果的長度都是32個字符,但明文中一點微小的變化使得結果發(fā)生了很大的變化,我們可以利用這個特點來檢查數(shù)據(jù)中微小變化。

相關文章

  • 無線網(wǎng)絡密碼的破解方法(圖)

    自從無線網(wǎng)絡誕生之日起,“安全”這個詞就始終如影隨形的伴隨在“無線”的身邊。攻與防如同親兄弟一樣,無論你加密手段多么的先進,不久之后就會有各種各樣的破解方式出現(xiàn)
    2008-10-08
  • 教你如何破解路由器的帳號和密碼

    本文總結幾個破解路由器密碼的方法以及如何實現(xiàn)內(nèi)網(wǎng)中反彈木馬的上線:   一.掃描路由器端口為了路由器的安全,網(wǎng)管通常都會將路由器的默認端口(80)給更改掉,所以我
    2008-10-08
  • 簡單破解“高強度文件夾加密大師”

    今天我們社團學弟拿了一個高強度文件夾加密大師給社長試試,說是一個這加密文件夾很好的東西,可以把私藏的物品放在文件夾然后加密文件夾。我處于好奇也跟了上去看看。他又
    2008-10-08
  • 輕松破解無線網(wǎng)絡WEP密碼上篇

    近些年無線技術發(fā)展迅速,越來越多的用戶使用無線設備在自己家建立起無線網(wǎng)絡,通過搭建無線網(wǎng)絡可以在家里的每個角落使用筆記本和無線網(wǎng)卡訪問internet。有很多文章都向大
    2008-10-08
  • 密碼失而復得 RAR文件密碼破解器(圖)

    RAR是一款常見的壓縮格式,主要運用于文件的存儲與傳遞?;ヂ?lián)網(wǎng)上提供下載的資源中,RAR格式占很大比重。出于安全的需求以及隱私的保護,有相當一部分的RAR文件被加上了密
    2008-10-08
  • 輕松破解無線網(wǎng)絡WEP密碼下篇

    上期為各位介紹了將自己的網(wǎng)卡重新安裝驅動,以便使用無線網(wǎng)絡檢測及WEP解密工具。當我們把網(wǎng)卡驅動更新完畢后,我們再來看看如何找出已經(jīng)禁用了SSID號廣播的無線網(wǎng)絡以及
    2008-10-08
  • 破解mysql root密碼的幾種方法

    網(wǎng)上流傳的幾種破解mysql root密碼的幾種方法: 方法一 使用phpmyadmin,這是最簡單的了,修改mysql庫的user表,不過別忘了使用PASSWORD函數(shù)。 方法二 使
    2008-10-08
  • 如何強行破解臺式電腦的開機密碼?破解方法介紹

    你還在為忘記密碼無法開機而發(fā)愁嗎?你還在為沒有密碼無法打開電腦而著急嗎?本章將大家一個巧妙的小招數(shù),讓你輕松解開任何一個電腦的開機密碼,非常實用
    2013-07-22
  • 量子計算機輕松破解加密算法 如何破解加密算法?

    最近有電腦用戶反應量子計算機可以破解下載的所有的加密算法嗎?其實也不是不可以,下面虛擬就為大家講解買臺量子計算機,如何分分鐘破解加密算法
    2016-09-26

最新評論