你知道下面的程序輸出結(jié)果是多少嗎?
創(chuàng)新互聯(lián)建站長期為近1000家客戶提供的網(wǎng)站建設(shè)服務(wù),團隊從業(yè)經(jīng)驗10年,關(guān)注不同地域、不同群體,并針對不同對象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺,與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為崇明企業(yè)提供專業(yè)的網(wǎng)站建設(shè)、成都網(wǎng)站設(shè)計,崇明網(wǎng)站改版等技術(shù)服務(wù)。擁有10年豐富建站經(jīng)驗和眾多成功案例,為您定制開發(fā)。
?php
echo md5('');
?
結(jié)果是:
d41d8cd98f00b204e9800998ecf8427e
上面的結(jié)果你是不是很眼熟呀,它就是你的結(jié)果呀,因為你的$_SESSION['pwd']為空,不信你輸出看看。
把這段密文分割成若干段,對每段都進行一次MD5運算,然后把這堆密文連成一個超長的字符串,最后再進行一次MD5運算,得到仍然是長度為32位的密文。
?php
//把密文分割成兩段,每段16個字符
function md5_2_1($data)
{
//先把密碼加密成長度為32字符的密文
$data = md5($data);
//把密碼分割成兩段
$left = substr($data, 0, 16);
$right = substr($data, 16, 16);
//分別加密后再合并
$data = md5($left).md5($right);
//最后把長字串再加密一次,成為32字符密文
return md5($data);
}
//把密文分割成32段,每段1個字符
function md5_2_2($data)
{
$data = md5($data);
//循環(huán)地截取密文中的每個字符并進行加密、連接
for ($i = 0; $i 32; $i++) {
$data .= md5($data{$i});
}
//這時$data長度為1024個字符,再進行一次MD5運算
return md5($data);
}
?
一般用來加密密碼,因為md5屬于不可逆的加密方式,所以認(rèn)為它的安全性比較高,不過現(xiàn)在網(wǎng)上有一些網(wǎng)站專門提供md5解密,他們這種解密都是用的列舉法,基本上12位以下的數(shù)字組合都是能夠解密的,所以密碼一定要用數(shù)字和字母的組合。
1、先給你原來的數(shù)據(jù)表增加一個字段,字段名為md5,類型int,然后運行一個sql語句:
sql語句:update xxx set md5=0 將md5這個字段值變成0,即表示該數(shù)據(jù)未MD5保存。
2、把這段代碼保存為rewrite.php并把數(shù)據(jù)庫名修改成你對應(yīng)的數(shù)據(jù)庫,然后運行。最好先把你的數(shù)據(jù)庫導(dǎo)出到本地的數(shù)據(jù)庫,然后在本地親自測試以下這段代碼的效果,之后再進行替換。
?php
/*讀取md5為0的前30條數(shù)據(jù),由于考慮到PHP有個30秒超時的內(nèi)置,所以一次更新30條,也可以大大降低對數(shù)據(jù)庫的負(fù)擔(dān)。*/
$sql=mysql_query("select id,password from XXX where md5=0 order by id desc limit 0,30");
$num=mysql_num_rows($sql);
if($num==0){
echo "所有MD5密碼替換完畢。"; //如果數(shù)據(jù)庫里面所有md5=0的記錄都變成了md5=1,則為修改完畢。
exit();
}else{
while($row=mysql_fetch_array($sql)){
$md5_pwd=md5($row['password']); //獲取原密碼,進行MD5化。
$query=mysql_query("update XXX set md5=1,password='".$md5_pwd."' where id=".$row['id'].""); //將該條數(shù)據(jù)進行更改,把原密碼改成MD5加密后的,并把md5值變成1,表示已經(jīng)該條數(shù)據(jù)已經(jīng)MD5加密
unset($query);
}
mysql_free_result($sql);
unset($sql,$row);
echo "meta http-equiv=\"refresh\" content=\"0;url=rewrite.php\""; //該30條記錄轉(zhuǎn)化完畢,繼續(xù)跳到這個頁面執(zhí)行,一直循環(huán)到替換結(jié)束。
exit();
}
mysql_close();
?
1.
通過get或post獲取前臺傳來的密碼
$_POST['password'];
2.
md5
函數(shù)加密: $pwd
=
md5($_POST['password']);
3.
寫入數(shù)據(jù)庫
insert
into
table(name,pwd)
value('name',$pwd);
網(wǎng)站標(biāo)題:php給數(shù)據(jù)MD5加密,md5加密結(jié)果
當(dāng)前路徑:http://jinyejixie.com/article36/dsecosg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站維護、動態(tài)網(wǎng)站、企業(yè)建站、全網(wǎng)營銷推廣、搜索引擎優(yōu)化、云服務(wù)器
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)