md5不能用于文本加密 md5加密工具類



文章插圖
md5不能用于文本加密 md5加密工具類

文章插圖
本文較長,自認為有點深度 。看完后,如果文章對你有用,歡迎關注,你的關注是我持續輸出有價值原創文章的動力 。提綱如下:
md5摘要到底是什么?md5能否解密?摘要有啥用?在沒有https的情況下,對密碼進行md5安全性等于0!https抓包也可以明文顯示,安全嗎?
md5摘要到底是什么?
就是說,不管你的內容短到一個字,還是長到一本小說,md5之后,生成的都是固定長度的字符串(常用的有16、32、64個字符,多數為32,下面按32來說明),這個字符串就是摘要,跟我們人工寫的文章摘要一個意思 。
差異點在于,人工寫的摘要相同可能性不會很小,長度也不一樣,而機器寫的摘要長度一樣,而且幾乎不可能一樣,相同概率是2的256次方分之一 。
md5能否解密?
我們暫且假設md5可以當作加密算法,那么加密肯定是要解密的咯,你覺得你可以根據32位解密一本古龍小說出來嗎?
不能?。ㄏ旅娓嬖V你其實對這種特殊情況是可以的)
首先我得告訴你,加密算法不是由計算機科學家發明的,都是由全球頂級數學家經過復雜數學理論設計的,加密算法就擺在哪里,可你拿到密文就是解不出原來的明文,就連設計加密算法的數學家也解密不出,這就是數學之美 。
那有人會說了,為什么網上有md5解密的?比如這個:
我告訴你,這是這個網站記錄了常用的一些明文和它對應的密文,當你輸入密文,自然明文就可以查詢出來 。比如普通的a、b、c…z…、123456、iloveyou等等,還有古龍小說全集,早就記錄在案了,所以古龍小說沒準可以破解,但有后面會告訴你不是沒有成本的 。
【md5不能用于文本加密 md5加密工具類】不信?你試試改一些上面的密文,他就要好久好久好久…才能解密原文了,就是說需要窮舉暴力破解了 。
當然,現代計算機算力越來越強(各種云運營商),存儲空間也越來越大,那么在利益驅動下(收費模式),這種事情也不是沒可能 。
至于成本有多大,看某網站的介紹就知道了:
在這樣的情況下,采用大數據分布式查詢,查詢一些在記錄中的還是很快的,不在記錄中的,只能通過不知猴年馬月的窮舉了 。
當然這些服務器沒事時,估計也是在不斷窮舉,并且把新紀錄記錄下來,但太太太浪費資源了 。
這么說吧,把一句“I love you”的各種組合的md5值記錄下來就已經不錯了 。
他們為什么不把“I love you”這句生成的md5值收費呢?因為這些md5“解密”(現在知道為什么要在解密兩邊加上雙引號了吧,實際是還原)網站,也不少,也在內卷 。不給你試試能解密,誰會用呢?
摘要有啥用?
一般用來鑒定被md5的原文是否一樣,比如你要對比古龍小說和盜版的古龍小說內容是否一致,按普通算法是不是要一個字一個字對比,甚至標點符號也要對比?
有摘要就不一樣了,對比一下兩篇文章的摘要,一樣,說明內容就是一樣的 。
在沒有https的情況下,對密碼進行md5安全性等于0!
有些網站沒有https很正常,因為網站站長根本就不懂技術嘛!
但對于程序員,對接口只采用md5進行所謂的“加密”就不能原諒了!
雖然他們寫的接口,不像網站暴露在外面,只是前后端相互調用,但要抓他們的包真的輕而易舉 。
抓到調用接口和經過md5“加密”的參數怎么“調戲”這個程序員?
這時候,你也許會說,我根本沒傳輸密碼啊,只是md5值啊,
后端我就用數據庫存儲的密碼也進行md5,將md5值對比一下就可以判斷是否正確的密碼啊,
即使你攔截到md5值也沒用啊 。
沒錯,我是不知道你的原密碼,所以我沒法在網頁里輸入原密碼,但我根本不需要通過網頁輸入 。
直接通過postman調用你的接口行不行?行 。
調用接口的時候一般都是拿到已經md5過了的字符串,我無須關心原來是什么,直接接口傳入的是這個字符就可以 。然后我就調用不同需要這個md5值的借口,想要拿什么數據就拿什么數據,想要修改什么就修改什么 。
簡不簡單?簡單 。
也就是說,我把這個md5后的字符串,當作密碼來用,一點問題都沒有 。
所以你必須配合https對傳輸的內容進行加密 。
https抓包也可以明文顯示,安全嗎?
正如上面這個問題,有些人要跳出來挑戰我了 。
來源網絡:https抓包明文顯示原理圖
他們通過Charles抓包,在電腦安裝信任Charles證書,且在手機端安裝Charles抓包軟件的證書后,在Charles確實可以看到明文
沒配置證書抓到的包是密文顯示
配置證書后,抓到的包是明文顯示
你或許能通過某種見不得人的手段,攔截到了客戶的包,但你也得要別人同意安裝你的證書才行 。
有人說,還有什么偽證書方式,我只想說,難不難,你試試才知道?老實說,我確實不懂,也不想暫時不想研究下去了 。