国产一级一区二区_segui88久久综合9999_97久久夜色精品国产_欧美色网一区二区

掃一掃
關注微信公眾號

使用MD5變換算法來防止窮舉破譯密碼
2007-01-18   

MD5是在Web應用程序中最常用的密碼加密算法。由于MD5是不可逆的,因而經過MD5計算得到后的密文,不能通過逆向算法得到原文。

回顧在Web應用程序中使用MD5加密文本密碼的初衷,就是為了防止數據庫中保存的密碼不幸泄露后被直接獲得。但攻擊者不但擁有數據量巨大的密碼字典,而且建立了很多MD5原文/密文對照數據庫,能快速地找到常用密碼的MD5密文,是破譯MD5密文的高效途徑。然而,MD5密文數據庫所使用的是最常規的MD5加密算法:原文-->MD5-->密文。因此,我們可以使用變換的MD5算法,使現成的MD5密文數據庫無所作為。

下面演示一些變換算法的例子,當然,在其它的Web開發語言中,也大同小異,完全能得到相同的結果。

變換一:循環MD5

最容易理解的變換就是對一個密碼進行多次的MD5運算。自定義一個函數,它接受$data和$times兩個形參,第一個是要加密的密碼,第二個是重復加密的次數。實現這種變換有兩種算法:

//迭代算法
function md5_1_1($data, $times = 32)
{
//循環使用MD5
for ($i = 0; $i < $times; $i++) {
$data = md5($data);
}
return $data;
}
//遞歸算法
function md5_1_2($data, $times = 32)
{
if ($times > 0) {
$data = md5($data);
$times--;
return md5_1_2($data, $times); //實現遞歸
} else {
return $data;
}
}
?>

變換二:密文分割MD5

盡管用戶的密碼是不確定的字符串,但是只要經過一次MD5運算后,就會得到一個由32個字符組成的字符串,這時可以再針對這個定長字符串變換。有點BT的算法是,把這段密文分割成若干段,對每段都進行一次MD5運算,然后把這堆密文連成一個超長的字符串,最后再進行一次MD5運算,得到仍然是長度為32位的密文。

//把密文分割成兩段,每段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);
//循環地截取密文中的每個字符并進行加密、連接
for ($i = 0; $i < 32; $i++) {
$data .= md5($data{$i});
}
//這時$data長度為1024個字符,再進行一次MD5運算
return md5($data);
}
?>

當然,這種密文分割的具體算法是數之不盡的,比如可以把原密文分割成16段每段兩字符、8段每段4字符,或者每一段的字符數不相等……

變換三:附加字符串干涉

在加密過程的一個步驟中,附加一個內容確定的字符串(比如說用戶名),干涉被加密的數據。不可以用隨機字串,因為這樣會使原算法無法重現。這種算法在某些情況下是很具有優勢的,比如說用于大量的用戶密碼加密,可以把用戶名作為附加干涉字串,這樣攻擊者就算知道你的算法,也很難從他們手中的字典中一下子生成海量的對照表,然后大量地破譯用戶密碼,只能有針對性的窮舉為數不多的用戶。

//附加字符串在原數據的尾部
function md5_3_1($data, $append)
{
return md5($data.$append);
}
//附加字符串在原數據的頭部
function md5_3_2($data, $append)
{
return md5($append.$data);
}
//附加字符串在原數據的頭尾
function md5_3_3($data, $append)
{
return md5($append.$data.$append);
}
?>

變換四:大小寫變換干涉

由于PHP所提供的md5()函數返回的密文中的英文字母全部都是小寫的,因此我們可以把它們全部轉為大寫,然后再進行一次MD5運算。

function md5_4($data)
{
//先得到密碼的密文
$data = md5($data);
//再把密文中的英文母全部轉為大寫
$data = strtotime($data);
//最后再進行一次MD5運算并返回
return md5($data);
}
?>

變換五:字符串次序干涉

把MD5運算后的密文字符串的順序調轉后,再進行一次MD5運算。

function md5_5($data)
{
//得到數據的密文
$data = md5($data);
//再把密文字符串的字符順序調轉
$data = strrev($data);
//最后再進行一次MD5運算并返回
return md5($data);
}
?>

變換六、變換七、變換八……

MD5變換算法是數之不盡的,甚至無須自己再去創造,就用上面的五個互相組合就可以搞出很BT的算法。比如說先循環加密后再分割,并在每一段上附加一個字符串再分別加密,然后變換大小寫并顛倒字符串順序后連成一個長字符串再進行MD5運算……

如果真的很不幸,由于某些漏洞,比如說SQL Injection或者文件系統中的數據庫被下載而異致用戶密碼數據暴露,那么MD5變換算法就能大大地增加破譯出密碼原文的難度,首先就是使網上很多的MD5原文/密文對照數據庫(要知道,這是破譯MD5最高效的方法)沒有用了,然后就是使攻擊者用常規算法去窮舉一串由變換算法得到的密文而搞得焦頭爛額。當然,MD5變換算法特別適合用于非開源的Web程序使用,雖說用在開源的程序中優勢會被削弱(大家都知道算法),但是也能抑制MD5原文/密文對照數據庫的作用。要進行這些復雜的變換運算,當然就要花費的更多的系統開銷了,然而對于安全性要求很嚴格的系統來說,多付出一些來換取高一點的安全性,是完全值得的。

責任編輯: 雪花(TEL:(010)68476636-8008)

熱詞搜索:

上一篇:通過Protected Storage獲取賬號信息
下一篇:黑客告訴你 木馬生成器不能隨便碰

分享到: 收藏
国产一级一区二区_segui88久久综合9999_97久久夜色精品国产_欧美色网一区二区
欧美日韩亚洲不卡| 东方欧美亚洲色图在线| 亚洲人成网站色在线观看| 久久精品亚洲精品国产欧美| 欧美男同性恋视频网站| 欧美色图一区二区三区| 91麻豆自制传媒国产之光| eeuss鲁一区二区三区| 国产成人av影院| 国产精品一区二区三区四区| 精品午夜一区二区三区在线观看| 国产午夜精品在线观看| 欧美精品1区2区| 欧美精品一区二区在线观看| 最新日韩在线视频| 青青草91视频| 91免费视频网| 国产亚洲成aⅴ人片在线观看| 亚洲欧美区自拍先锋| 免费高清不卡av| 欧美在线视频你懂得| 欧美一级二级三级蜜桃| 国产精品电影院| 国产一区二区视频在线| 在线看不卡av| 亚洲精品福利视频网站| 国产一区二区精品久久99| 欧美日韩午夜在线视频| 91精品国产综合久久福利 | 色系网站成人免费| fc2成人免费人成在线观看播放| 欧美日韩成人高清| 亚洲一区视频在线| 色综合久久综合网欧美综合网| 国产偷国产偷亚洲高清人白洁| 视频在线观看一区二区三区| 91蜜桃在线观看| 自拍偷拍国产精品| 91在线播放网址| 亚洲精品v日韩精品| 91亚洲大成网污www| 亚洲狼人国产精品| 欧洲一区二区三区在线| 午夜精品免费在线| 日韩欧美国产不卡| 黄网站免费久久| 久久久不卡网国产精品一区| 国内精品不卡在线| 亚洲柠檬福利资源导航| 欧美日韩精品一区二区天天拍小说 | 欧美日韩久久一区二区| 五月婷婷久久综合| 欧美妇女性影城| 国产一区二区精品在线观看| 久久久精品蜜桃| 在线观看一区二区视频| 蜜臀av一区二区在线免费观看 | 亚洲午夜国产一区99re久久| 欧美美女一区二区在线观看| 韩国av一区二区三区在线观看| 久久久久久久久久久久久久久99 | 国产精品美女视频| 91免费观看视频| 国产资源在线一区| 久久久美女毛片| 欧美综合在线视频| 国产不卡免费视频| 久久疯狂做爰流白浆xx| 亚洲视频在线一区| 精品人伦一区二区色婷婷| 99精品视频在线播放观看| 紧缚奴在线一区二区三区| 一区二区三区在线观看网站| 国产欧美一区二区三区网站| 91麻豆精品91久久久久久清纯 | 国产亚洲福利社区一区| 91麻豆精品国产91久久久更新时间| 不卡的av在线播放| 国产精品2024| 国产精品18久久久久久vr| 免费不卡在线观看| 亚洲精品国产成人久久av盗摄 | 国产suv精品一区二区883| 毛片不卡一区二区| 久久99国产精品久久| 秋霞国产午夜精品免费视频| 免费在线观看精品| 免费人成精品欧美精品| 久久66热偷产精品| av网站一区二区三区| 国产精品影音先锋| 丁香激情综合五月| 色综合天天狠狠| 欧美日韩在线不卡| 日韩一区二区精品葵司在线| 日韩一区二区电影网| 国产午夜一区二区三区| 亚洲美女一区二区三区| 视频一区中文字幕国产| 国产一区二区中文字幕| 99久久精品费精品国产一区二区| 日本韩国视频一区二区| 欧美日韩三级视频| 久久久亚洲欧洲日产国码αv| 国产精品免费网站在线观看| 午夜精品视频在线观看| 成人免费高清视频| 欧美视频一区二区| 国产日产欧产精品推荐色| 亚洲精品一二三| 国产精品影视在线观看| 欧美无人高清视频在线观看| 国产拍欧美日韩视频二区| 天堂在线亚洲视频| 91蜜桃婷婷狠狠久久综合9色| 日韩欧美电影一二三| 亚洲国产精品久久一线不卡| 波多野结衣在线一区| 久久色在线视频| 日韩精品一级二级| 91免费国产在线观看| 国产精品视频线看| 成人黄色在线视频| 日本一区二区高清| 国产+成+人+亚洲欧洲自线| 精品久久久久99| 日本不卡一区二区三区| 欧美日韩国产影片| 亚洲mv在线观看| 欧美老年两性高潮| 天堂va蜜桃一区二区三区| 在线观看一区日韩| 亚洲国产成人精品视频| 亚洲精品在线观| 亚洲成人在线观看视频| 欧美美女bb生活片| 日本vs亚洲vs韩国一区三区| 欧美日韩mp4| 国产精品一区在线| **性色生活片久久毛片| 欧美日韩在线电影| 日韩va亚洲va欧美va久久| 精品福利在线导航| 成+人+亚洲+综合天堂| 亚洲曰韩产成在线| 精品国产露脸精彩对白| 激情综合色综合久久综合| 国产偷国产偷亚洲高清人白洁| av电影在线观看一区| 亚洲成国产人片在线观看| 欧美一区永久视频免费观看| 国产超碰在线一区| 日韩精品一卡二卡三卡四卡无卡| 精品免费国产二区三区| 欧美中文字幕一区二区三区亚洲| 婷婷中文字幕一区三区| 亚洲国产精品传媒在线观看| 欧美在线不卡视频| av中文字幕一区| 久久99久久精品欧美| 亚洲综合精品久久| 国产亚洲一区二区三区在线观看| 91国在线观看| eeuss鲁片一区二区三区在线观看| 亚洲va在线va天堂| 伊人婷婷欧美激情| 国产精品人妖ts系列视频| 日韩欧美中文字幕公布| 欧美一区二区三区性视频| 91视频观看免费| 成人午夜精品一区二区三区| 国产综合久久久久影院| 日本免费在线视频不卡一不卡二| 一区二区三区精品久久久| 亚洲国产精品黑人久久久| 久久影院电视剧免费观看| 日韩一区二区三区观看| 欧美一区二区网站| 日韩免费视频一区| 久久久久久免费毛片精品| 天天做天天摸天天爽国产一区 | 亚洲乱码一区二区三区在线观看| 91精品国产丝袜白色高跟鞋| 欧美日韩日本视频| 欧美日本韩国一区二区三区视频 | 五月激情六月综合| 蜜桃av噜噜一区| 粉嫩绯色av一区二区在线观看| 国产精品综合一区二区三区| 国产精华液一区二区三区| 97se亚洲国产综合在线| 欧美体内she精视频| 欧美浪妇xxxx高跟鞋交| 久久中文娱乐网| 亚洲一二三区视频在线观看| 美洲天堂一区二卡三卡四卡视频| 国产福利91精品一区二区三区| av高清不卡在线| 精品国产一区二区三区四区四| 国产精品污www在线观看|