解決Javascript md5 和 Java md5 中文加密后不同問題


Javascript md5 和 Java md5 帶中文字符加密結果不一致,可以通過編碼進行轉化。

 

javascript可以使用encodeURLComponent將中文先轉化一次再進行MD5加密。同樣的,java后面也應該用在后台再進行一次編碼后進行MD5加密。

 

但是這樣還是會出問題。

 

為什么呢?

 

javascript中的encodeURLComponent編碼方式能解密: ’%21' 為 '!' ,')','%28' 為 '(', '%29' 為 ')' 。

 

但是不會編碼 '(' , ')' , '!' 和'*'.而java編碼后會將 '!' 轉化為'%21',')','(' 轉化為'%28',')' 轉化為'%29' 。

 

因此轉化數據前需要在用js再relpace掉所有的 '(' ,  ')' ,  '!' ,替換成對應的編碼字符。

 

注:上述的符合均為英文狀態下的 '(',')','!'。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM