解决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