MD5引發的血案

2021-07-30 20:50:54 字數 668 閱讀 2701

在今天發現了乙個神奇的問題,原因是在移動端md5後,把資料傳給後台,後台對資料重新生成md5和移動端的md5做對比時發現md5不同,一開始對比資料,發現完全一致。

之後經過不斷實驗,發現是編碼問題,在資料中有中文時問題就出現了。但是神奇的我們看到的中文並不是亂碼。這是為什麼呢?首先,讓我們看一下實驗圖。

你會發現所有都正常,就是md5不同。最後通過網上查詢是jvm預設取了自己的編碼,導致在中間過程會把編碼轉變,但我們顯示是utf-8編碼所以看不出問題。查詢後網上都是新增-dfile.encoding=utf-8 就行。

但是你會發現在idea的控制台輸出的中文會成為亂碼,其實我們不需要這樣改。只需要在md5檔案的方法中把傳入字串的編碼格式改變就可以了

。如圖,通過獲得bytes時強制編碼。就可以避免上述的問題。

乙個base64引發的血案

結果發現header跟body之間多了乙個換行符 r n http協議預設header和body之間有乙個空行隔開,也就是乙個只含有 r n的行,但是多了乙個 r n,就會導致伺服器取body的時候從這個多出來的 r n開始取content length個字元,這樣body裡最後的兩個字元就被這個多...

Shiro密碼的MD5加密 MD5鹽值加密

用md5加密演算法後,前台使用者輸入的字串如何使用md5加密,需要做的是將當前的realm 的credentialsmatcher屬性,替換為md5credentialsmatcher 由於md5credentialsmatcher已經過期了,推薦使用hashedcredentialsmatcher...

php 變數的md5加密,PHP中的MD5加密

php中的md5加密 2005 02 17 enet ciweek 綜述 密碼學是研究編制密碼 我們簡稱為加密 encode 和破譯密碼 我們稱之為解密 decode 的技術科學。研究密碼變化的客觀規律,應用於編制密碼以保守通訊秘密的,稱為編碼學 應用於破譯密碼以獲取通訊情報的,稱為破譯學,總稱密碼...