摘要:大家好,我是永強(qiáng),就是老李之前經(jīng)常給你們說的區(qū)塊鏈大神大學(xué)肄業(yè)卻依然大公司主程一波兒流只生活在老李口中尚未真實露面的騙錢高手老王的左膀右臂趙永強(qiáng)。
大家好,我是永強(qiáng),就是老李之前經(jīng)常給你們說的區(qū)塊鏈大神、大學(xué)肄業(yè)卻依然大公司iOS主程一波兒流、只生活在老李口中尚未真實露面的騙錢高手、老王的左膀右臂 ——— 趙永強(qiáng)。我和尼古拉斯趙四之間并沒有什么強(qiáng)關(guān)聯(lián),我只是單方面認(rèn)識他而已。
之前老李企圖讓我發(fā)表一些關(guān)于如何進(jìn)行高端騙工資騙錢的教程,被我義正言辭地拒絕了:
畢竟是畢生絕學(xué),不能就這么輕而易舉地教給你們
不過后面有時間我可以給大家出一些關(guān)于“如何在公司混日子還能升職加薪”的入門級教程,傳男不傳女,獨(dú)家絕技!敬請期待!
言歸正傳,那個一直以來我對加解密技術(shù)都是耿耿于懷的,因為很多年前有一次面試中被這東西給坑掉了,雖然我后來就自己對加解密中一些自己不懂的地方請教了對方而且他也沒有給我講清楚…
事情都過去好幾年了,本人自我感覺已經(jīng)一定程度掌握了一些關(guān)于加密的高端技術(shù),因為決定出來裝一波兒逼,時間比較緊張,我打算趕在2020年農(nóng)歷新年之前把逼裝完,你們要注意配合。
我知道老李之前在社區(qū)發(fā)表了一些關(guān)于加密啊、解密啊之類的東西,甚至還扯上了什么DH什么ECDH,又是質(zhì)數(shù)又是橢圓曲線,不過這并不與本系列產(chǎn)生沖突,這并不重要,不要在意這些細(xì)節(jié),他那個too young too simple,sometimes naive…
這將是一個大概由四篇左右的文章組成的系列文章,所以在正式開始之前,我不得不強(qiáng)調(diào)一點(diǎn) ——— 如下這幾門學(xué)科的基礎(chǔ)理論知識:
《離散數(shù)學(xué)》
《微分與積分》
《空間幾何》
《概率論》
你并不需要具備。。。
不過你總得知道除了html和css之外的任意一門編程語言。盡管本人精通上到CLanguage下到Perl之類的各種語言,但是本文將采用世界上最好的語言進(jìn)行一些程序演示,后面老李可能會使用CLanguage和Golang進(jìn)行其他語言的演示補(bǔ)充。
簡單說來呢,加解密技術(shù)就是分為兩大類:
對稱加解密
非對稱加解密
其中,常見的對稱加解密算法有DES、3DES、AES;而非對稱加解密技術(shù)比較典型的則是RSA,就是什么公鑰私鑰證書什么亂七八糟的。
我們先從對稱加解密開始,粗暴地說呢,對稱加解密就是“加密和解密的時候用同一個密碼”,聽起來就非常對稱,有沒有?
用圖表達(dá)一下就是:
最一開始的時候,我朝人民一般都是傾向于使用“天王蓋地虎”,“寶塔鎮(zhèn)河妖”這種加解密技術(shù);然而,美帝用了一種叫做DES的技術(shù)進(jìn)行對稱加解密,這玩意一度成為業(yè)界通用的對稱加解密技術(shù),銀行、五角大樓都愛用這玩意,可惜好景不長、世風(fēng)日下、世態(tài)炎涼,這玩意的破解成本越來越低越來越低~~ 于是,為了續(xù)命,就又有一些白胡子老頭給DES打補(bǔ)丁,縫縫補(bǔ)補(bǔ)搞出來一個玩意叫做3DES,繼續(xù)用,又不是不能用…這個顧名思義就行了,別打我,真的:3DES就是用DES處理(注意是處理,我沒說是加密)了三次的意思。就目前看來,3DES實際上用的可能也并不是十分廣泛了,所以如果大家在選擇對稱加解密技術(shù)的時候,盡量避開DES和3DES就可以了。
呵呵,喜新厭舊的沙雕人類…雖然DES已經(jīng)沒人用了,但畢竟也是輝煌過,我覺得還是得動手表演一波兒。我們知道,在php7里,原來的mcrypt系列加解密已經(jīng)被放棄掉了,官方建議我們使用openssl系列來進(jìn)行加解密,所以確保你的PHP環(huán)境里安裝了openssl標(biāo)準(zhǔn)擴(kuò)展。
文件保存成test.php后,執(zhí)行一把:php test.php | grep des,結(jié)果你們感受一下:
其中帶有ede的,比如des-ede*這樣的就表示是3DES。還有這么多奇奇怪怪的后綴是什么含義?回頭再說…又不是不能用。
篩選一下,我們看des(非des3)有幾種帶著尾巴的具體方法:
des-cbc
des-cfb*(注意后面的通配符星號)
des-ecb
des-ofb
我們先用傳統(tǒng)des方法繼續(xù)進(jìn)行裝逼表演:
保存為test.php執(zhí)行一把:
完美!就像老王的meshbox一樣,完美!
簡單解析一下:
換個方法繼續(xù)一下:我們使用openssl_get_cipher_methods()函數(shù)獲取到可以使用的所有des加密方法,然后簡單判斷一下我們選用的方法是否在其中;緊接著我們用123456作為密碼,helloMOTO作為明文內(nèi)容,openssl_encrypt()就是加密函數(shù),openssl_decrypt()就是解密函數(shù),具體的函數(shù)原型出門左拐查手冊,總之一切都是這么的完美!
執(zhí)行一波兒,結(jié)果如下圖:
并不完美,報錯了,一個warning級的錯誤,雖然并不影響加密和解密,但是畢竟是報錯了,錯誤原文我復(fù)制粘貼過來,你們感受下:
PHP Warning: openssl_encrypt(): Using an empty Initialization Vector (iv) is potentially insecure and not recommended in /home/ubuntu/lab/test.php on line 10
大概意思就是:用了一個并不推薦而且不安全的空iv在test.php的第十行。我正在翻譯的這句的時候,已經(jīng)精通英語的老李在旁邊跟我說“你這翻譯也太硬了,要學(xué)會人性化,看好了,一看你這就是沒上過全日制大學(xué)本科的惡果”:
PHP警告:openssl_encrypt():iv向量最好別是空的,不推薦這么用,而且這樣并不安全~
什么是iv向量?先拋開這個問題,我先寫一段代碼,讓他能跑起來:
注意到8、9、10和15、17兩行,均為iv向量做了改動,然后這次代碼保存了運(yùn)行一波兒:
完美!就像老王的meshbox一樣,完美!
那么,在des加解密中,我們遺留了兩個問題:
des-cbcdes-cfb等這些后綴是什么意思?
iv向量是什么鬼東西?
長按或許有驚喜
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/31702.html
摘要:但是給永強(qiáng)留下了面積巨大的心理陰影。所以永強(qiáng)本來昨天要發(fā)的文章拖到了今天,但是永強(qiáng)實在是怕了,他怕被人噴了被人罵了。 永強(qiáng)被嚇壞了!因為永強(qiáng)看到了某個微信群有人指出公眾號里上篇打醬油附送的那篇文章《震驚!北京一男子竟然用swoole做了這種事!》的內(nèi)容實在是太low了,這種low文章就不要拿出來發(fā)了。 但是給永強(qiáng)留下了面積巨大的心理陰影。他尚未見識過社交網(wǎng)絡(luò)的惡毒嘴臉。 所以永強(qiáng)本來昨...
摘要:由于密鑰被暴露了,所以必須換新的密鑰,元首這會兒只能走途徑告訴古德里安新的密鑰,這會兒逗逼的事情來了,如何對密鑰進(jìn)行加密。但是,有一點(diǎn)是值得說明,那就是無論是對稱加密還是非對稱加密,都頂不住用機(jī)器是強(qiáng)行暴力猜解私鑰。 懶漢 入門 這兩點(diǎn)就足以說明這篇文章不想要著有什么高端大氣的技術(shù)內(nèi)容,我跟你講,全是水。不可能有什么質(zhì)數(shù)素數(shù)、橢圓曲線加密、迪菲-赫爾曼什么的,不可能有的。 首先我不...
摘要:添加應(yīng)用啟動類配置客戶端鏈接經(jīng)過對稱加解密的配置微服務(wù)專門為測試經(jīng)過對稱加解密的配置微服務(wù)微服務(wù)模塊。 SpringCloud(第 031 篇)配置客戶端ConfigClient鏈接經(jīng)過對稱加解密的配置微服務(wù) - 一、大致介紹 1、Git服務(wù)端的文件內(nèi)容進(jìn)行了加密處理,那么是不是配置客戶端拿到內(nèi)容之后需要解密呢? 2、答案顯然不是的,因為這樣解密的話,先不說實現(xiàn)起來的難易程度,單從表面...
SpringCloud(第 033 篇)配置客戶端ConfigClient鏈接經(jīng)過對稱加解密的配置微服務(wù) - 一、大致介紹 1、在(第 031 篇)講解了如何鏈接對稱加密的配置服務(wù)端,而鏈接對稱非對稱加密的配置微服務(wù)也是同樣的; 2、配置客戶端不需要做什么加解密的配置,加解密的配置在服務(wù)端做就好了; 3、這里還順便列舉下配置路徑的規(guī)則: /****************************...
摘要:實際上這一篇和上一篇均可以看作是關(guān)于加解密的懶漢入門篇安全加強(qiáng)篇一的后續(xù),只不過側(cè)重點(diǎn)在于安全上?;氐缴掀Y(jié)果提到的問題,就是對稱加密的安全性要人命,非對稱加密的性能非常要人命。元首作為高智商罪犯,這種低級錯誤是不可能犯的。 為什么標(biāo)題總是要帶上API安全關(guān)鍵字呢?因為我想我樂意。 實際上這一篇和上一篇均可以看作是《關(guān)于PHP加解密的懶漢入門篇(API安全加強(qiáng)篇一)》》)的后續(xù),只不過...
閱讀 1968·2021-10-11 10:59
閱讀 1081·2021-09-07 09:59
閱讀 2261·2021-08-27 16:17
閱讀 2820·2019-08-30 15:54
閱讀 2298·2019-08-30 12:58
閱讀 1806·2019-08-30 12:53
閱讀 1499·2019-08-28 18:13
閱讀 759·2019-08-26 13:35