寫給菜鳥—可逆和不可逆加解密算法原理
互聯(lián)網(wǎng) 發(fā)布時(shí)間:2008-10-08 19:04:57 作者:佚名
我要評(píng)論

現(xiàn)在很多網(wǎng)站密碼采用MD5 方式加密,MD5是不可逆的運(yùn)算,所以加密后不可能根據(jù)密文來還原。
這里設(shè)明文到MD5密文的轉(zhuǎn)換過程為函數(shù),f(x),對(duì)任意x只有一個(gè)y=f(x)與之對(duì)應(yīng),對(duì)于任意y=f(x)只可能有唯一的一個(gè)x可以得到f(x)=y。16位MD5 的算法有f("917")=&quo
現(xiàn)在很多網(wǎng)站密碼采用MD5 方式加密,MD5是不可逆的運(yùn)算,所以加密后不可能根據(jù)密文來還原。
這里設(shè)明文到MD5密文的轉(zhuǎn)換過程為函數(shù),f(x),對(duì)任意x只有一個(gè)y=f(x)與之對(duì)應(yīng),對(duì)于任意y=f(x)只可能有唯一的一個(gè)x可以得到f(x)=y。16位MD5 的算法有f("917")="d2dc5d489242e60e"。因?yàn)檫\(yùn)算不可逆,所以不會(huì)存在統(tǒng)一的算法g(y)=x而是你通過"d2dc5d489242e60e"得到"917"。
如果你在一個(gè)系統(tǒng)中的注冊密碼是"917",出于安全考慮,系統(tǒng)留下的不是明文而是"d2dc5d489242e60e"。比如說你本次登錄對(duì)系統(tǒng)提交的是"917",系統(tǒng)不是直接驗(yàn)證,而是用f("917")來驗(yàn)證是不是等于系統(tǒng)中保存的"d2dc5d489242e60e"。如果相等,就代表登陸成功,不相等就不成功。
你可以通過各種方法得到系統(tǒng)中存儲(chǔ)的"d2dc5d489242e60e",此時(shí)的唯一選擇是在有效的范圍內(nèi)枚舉(一一列舉)可能的明文通過f(x)看是否等于"d2dc5d489242e60e"。因?yàn)橛?jì)算機(jī)的優(yōu)勢就是運(yùn)算速度快和運(yùn)算精確度高,每秒鐘可以枚舉數(shù)萬甚至更高。比如可以讓計(jì)算機(jī)循環(huán)從0枚舉到999,當(dāng)?shù)?17時(shí)就會(huì)得到與上例相同的密文,就證明明文是"917"。指定計(jì)算機(jī)允許的全部字符范圍理論上就可以破解所有的密碼明文,而只是時(shí)間問題(一個(gè)復(fù)雜的密碼可能需要破解者N個(gè)世紀(jì)來破解,而一個(gè)8位純數(shù)字、常用單詞可能只需要計(jì)算機(jī)N秒的時(shí)間)。盡管數(shù)據(jù)庫不是那么容易泄露和被入侵者得到,但是安全意識(shí)必須加強(qiáng),密碼強(qiáng)度要足夠大。
而很多時(shí)候我們需要可逆的算法來加密。比如我們發(fā)郵件,如果是機(jī)要文件發(fā)送路途中可能會(huì)被各種方法攔截而泄密。這是我們需要可逆算法。假設(shè)有一種簡單算法為y=f(x,m),逆算有x=g(y,n)。發(fā)送方使用f(x,m),接受方使用g(y,n)。m,n分別為雙方的“鑰匙”。設(shè)m=1,n=2時(shí)有y=f("晚上8點(diǎn)橋上見",1)="你吃飯了么?";x=g("你吃飯了么?",2)="晚上8點(diǎn)橋上見"。此時(shí)發(fā)送方只用根據(jù)自己的y=f(x,m)發(fā)送“你吃飯了么?”給接受方,即使路上被攔截也沒有泄露什么,接受方用自己唯一的x=g(y,n)代入得到的y=“你吃飯了么?”和自己的鑰匙就輕松得到x="晚上8點(diǎn)橋上見"。
這里設(shè)明文到MD5密文的轉(zhuǎn)換過程為函數(shù),f(x),對(duì)任意x只有一個(gè)y=f(x)與之對(duì)應(yīng),對(duì)于任意y=f(x)只可能有唯一的一個(gè)x可以得到f(x)=y。16位MD5 的算法有f("917")="d2dc5d489242e60e"。因?yàn)檫\(yùn)算不可逆,所以不會(huì)存在統(tǒng)一的算法g(y)=x而是你通過"d2dc5d489242e60e"得到"917"。
如果你在一個(gè)系統(tǒng)中的注冊密碼是"917",出于安全考慮,系統(tǒng)留下的不是明文而是"d2dc5d489242e60e"。比如說你本次登錄對(duì)系統(tǒng)提交的是"917",系統(tǒng)不是直接驗(yàn)證,而是用f("917")來驗(yàn)證是不是等于系統(tǒng)中保存的"d2dc5d489242e60e"。如果相等,就代表登陸成功,不相等就不成功。
你可以通過各種方法得到系統(tǒng)中存儲(chǔ)的"d2dc5d489242e60e",此時(shí)的唯一選擇是在有效的范圍內(nèi)枚舉(一一列舉)可能的明文通過f(x)看是否等于"d2dc5d489242e60e"。因?yàn)橛?jì)算機(jī)的優(yōu)勢就是運(yùn)算速度快和運(yùn)算精確度高,每秒鐘可以枚舉數(shù)萬甚至更高。比如可以讓計(jì)算機(jī)循環(huán)從0枚舉到999,當(dāng)?shù)?17時(shí)就會(huì)得到與上例相同的密文,就證明明文是"917"。指定計(jì)算機(jī)允許的全部字符范圍理論上就可以破解所有的密碼明文,而只是時(shí)間問題(一個(gè)復(fù)雜的密碼可能需要破解者N個(gè)世紀(jì)來破解,而一個(gè)8位純數(shù)字、常用單詞可能只需要計(jì)算機(jī)N秒的時(shí)間)。盡管數(shù)據(jù)庫不是那么容易泄露和被入侵者得到,但是安全意識(shí)必須加強(qiáng),密碼強(qiáng)度要足夠大。
而很多時(shí)候我們需要可逆的算法來加密。比如我們發(fā)郵件,如果是機(jī)要文件發(fā)送路途中可能會(huì)被各種方法攔截而泄密。這是我們需要可逆算法。假設(shè)有一種簡單算法為y=f(x,m),逆算有x=g(y,n)。發(fā)送方使用f(x,m),接受方使用g(y,n)。m,n分別為雙方的“鑰匙”。設(shè)m=1,n=2時(shí)有y=f("晚上8點(diǎn)橋上見",1)="你吃飯了么?";x=g("你吃飯了么?",2)="晚上8點(diǎn)橋上見"。此時(shí)發(fā)送方只用根據(jù)自己的y=f(x,m)發(fā)送“你吃飯了么?”給接受方,即使路上被攔截也沒有泄露什么,接受方用自己唯一的x=g(y,n)代入得到的y=“你吃飯了么?”和自己的鑰匙就輕松得到x="晚上8點(diǎn)橋上見"。
相關(guān)文章
- “CMOS密碼”就是通常所說的“開機(jī)密碼”,主要是為了防止別人使用自已的計(jì)算機(jī),設(shè)置的一個(gè)屏障2023-08-01
QQScreenShot之逆向并提取QQ截圖--OCR和其他功能
上一篇文章逆向并提取QQ截圖沒有提取OCR功能, 再次逆向我發(fā)現(xiàn)是可以本地調(diào)用QQ的OCR的,但翻譯按鈕確實(shí)沒啥用, 于是Patch了翻譯按鈕事件, 改為了將截圖用百度以圖搜圖搜索.2023-02-04- QQ截圖是我用過的最好用的截圖工具, 由于基本不在電腦上登QQ了, 于是就想將其提取出獨(dú)立版目前除了屏幕錄制功能其他都逆出來了, 在此分享一下2023-02-04
非系統(tǒng)分區(qū)使用BitLocker加密導(dǎo)致軟件無法安裝的解決方法
很多電腦用戶在考慮自己電腦磁盤分區(qū)安全時(shí)會(huì)采用 Windows 自帶的 BitLocker 加密工具對(duì)電腦磁盤分區(qū)進(jìn)行加密。但有些人加密后就會(huì)忘記自己設(shè)置的密碼從而導(dǎo)致在安裝其它軟2020-11-25防止離職員工帶走客戶、防止內(nèi)部員工泄密、避免華為員工泄密事件的發(fā)生
這篇文章為大家詳細(xì)介紹了如何才能防止離職員工帶走客戶、防止內(nèi)部員工泄密、避免華為員工泄密事件的發(fā)生,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-06-27徹底防止計(jì)算機(jī)泄密、重要涉密人員離職泄密、涉密人員離崗離職前防范舉
近些年企業(yè)商業(yè)機(jī)密泄漏的事件屢有發(fā)生,這篇文章主要教大家如何徹底防止計(jì)算機(jī)泄密、重要涉密人員離職泄密、告訴大家涉密人員離崗離職前的防范舉措,具有一定的參考價(jià)值,2017-06-27量子計(jì)算機(jī)輕松破解加密算法 如何破解加密算法?
最近有電腦用戶反應(yīng)量子計(jì)算機(jī)可以破解下載的所有的加密算法嗎?其實(shí)也不是不可以,下面虛擬就為大家講解買臺(tái)量子計(jì)算機(jī),如何分分鐘破解加密算法2016-09-26怎么破解Webshell密碼 Burpsuite破解Webshell密碼圖文教程
webshell是以asp、php、jsp或者cgi等網(wǎng)頁文件形式存在的一種命令執(zhí)行環(huán)境,一種網(wǎng)頁后門。黑客通常會(huì)通過它控制別人網(wǎng)絡(luò)服務(wù)器,那么怎么破解webshell密碼呢?一起來看看吧2016-09-19針對(duì)Linux系統(tǒng)全盤加密的啟動(dòng)攻擊
本文討論了針對(duì)Linux系統(tǒng)全盤加密的冷啟動(dòng)攻擊,大家都認(rèn)為這種攻擊是可行的,但執(zhí)行這么一次攻擊有多難?攻擊的可行性有多少呢?需要的朋友可以參考下2015-12-28防止泄露公司機(jī)密、企業(yè)數(shù)據(jù)防泄密軟件排名、電腦文件加密軟件排行
面對(duì)日漸嚴(yán)重的內(nèi)部泄密事件,我們?nèi)绾问刈o(hù)企業(yè)的核心信息,如何防止內(nèi)部泄密也就成了擺在各個(gè)企業(yè)領(lǐng)導(dǎo)面前的一大問題。其實(shí),針對(duì)內(nèi)網(wǎng)安全,防止內(nèi)部信息泄漏早已有了比較2015-12-17