詳解《十分鐘破解不可逆算法》
發(fā)布時(shí)間:2008-12-23 閱讀數(shù): 次 來源:網(wǎng)樂原科技
先說點(diǎn)題外話,本來我是不想把這篇文章放上來的,《十分鐘破解不可逆算法》也不是我放的,本來軟件是給我朋友,讓他幫我測試的,朋友以我的名義發(fā)表了這篇文章,發(fā)表以后一向寂靜的QQ突然熱鬧起來,平均每天10人加我,多數(shù)叫我拒之門外,看在網(wǎng)友這么熱情,對(duì)我的算法還有所懷疑特地發(fā)此文章,一次朋友用我的Q和一個(gè)網(wǎng)友聊天,叫那個(gè)網(wǎng)友問的啞口無言,于是就和那個(gè)網(wǎng)友一頓呼哈,也沒說個(gè)支吾毛有,廢話少說看下面。
首先說一下我的算法,這個(gè)算法叫取余法?。ú皇侨 棒~”法?。。?
例如:122/10=12……2 122除10等于12余2
問:有一數(shù)除10余2 這個(gè)數(shù)是多少! 恐怕這個(gè)數(shù)你很難回答!
122/7=17……3 122除7等于17余3
問:有一數(shù)除10余2 除7余3 這個(gè)數(shù)是多少! 這個(gè)數(shù)就好找了吧!
122/9=14……1 122除9等于14余0
問:有一數(shù)除10余2 除7余3 除9余1 這個(gè)數(shù)是多少!這個(gè)數(shù)就是唯一的!如果不是唯一可以按照以上辦法找出唯一!
112/7=16……0 112除7等于16余0
112/10=11……2 112除10等于11余2
112/9=12……4 112除9等于12余4 這個(gè)就是中國剩余定理!中國人就是牛!按照這種方法多找?guī)状尉涂梢哉业较胍臄?shù)!
例如:0000000000 的md5散列為:a17f1ce948dc979f 把每個(gè)字符轉(zhuǎn)換為hex值:61 31 37 66 31 63 65 39 34 38 64 63 39 37 39 66 在除1070結(jié)果 61313766316365393438646339373966/1070=57302585342397563961351719041……0897 前面的數(shù)不要管他 只留下余數(shù)0897 寫入字典(這里的字典不僅僅是存文本文件也可以是數(shù)據(jù)庫形式的,SQL、MDB、但不建議用MDB)例如寫到數(shù)據(jù)庫的表1里按照同樣的方法把0000000000的散列值除120余數(shù)等于93寫入表2,在次重復(fù),除以55余數(shù)等于45寫入表3用相同的辦法把0000000000-9999999999的余數(shù)寫入3個(gè)表內(nèi),用對(duì)比余數(shù)的方法去破解md5的密碼!大概與表1對(duì)比以后會(huì)有40萬余數(shù)相同,在與2表比較相同余數(shù)的不會(huì)超過1萬在比較表3相同的余數(shù)1-9個(gè)內(nèi),用手工來試密碼我想也用不了5分鐘吧。有人會(huì)問:比直接暴力破解麻煩生成字典的時(shí)間可能會(huì)更長,可是你要知道,在你沒有破解密碼的時(shí)候就可以把字典事先做好,等再次破解的時(shí)候就方便了,還有人問我:這和暴力破解有什么區(qū)別,舉例說:a17f1ce948dc979f里面的a要用一個(gè)字節(jié),a17f1ce948dc979f共16位站用16字節(jié) 按照取余法(0897、717、65、)4位+3位+2位=9位 這樣算來時(shí)間就快省一半了,可是你要知道第一次與表1對(duì)比以后,就沒有那么對(duì)的余數(shù)相同的散列比較了,速度可想,但沒有像我朋友說的那么快,破解時(shí)間大概30分鐘吧!在此改正!
對(duì)于32位或64位的pc機(jī)每個(gè)字節(jié)要有32或64個(gè)1和0組成,我們其實(shí)一直就在算1與0,哎…… 郁悶啊!