当前位置:编程学习 > JAVA >>

Java IOS AES256加密解密

最近折腾Java和IOS,现在在AES加密传输的时候遇到一个奇怪的问题,求大神指导····

说明:java是服务器端 ios是客户端

比如一段明文如下:
{
  "method" : "ISunRegister",
  "userName" : "你妹妹",
  "password" : "d4c101ce3f821ca17c18fe0a5adf3b75"
}

加密后得到密文:
vTP3g3bU3HIyQLwVhZAn1eKHtCl4LSL2ePYEE5Eh0Q3efMKfnWOZx34giKSybtVc0cSdvHZz95q8mQeZh38DY2DZfJKYMLUBWHza6IBTOYPYN9kaWgX/pTB7OXm1KjTrazV3SrrOxbGnSq3ZR0K6vA==


奇怪的事情发生了,我在action中的main方法中直接使用这一段密文测试,去调用解密的方法,能得到正确的明文,但是我用ios网络访问后台的时候,在action中调用解密方法前,我打印密文,还是这一段密文(完全相同,一个字不差),但是解密的结果出来,英文字符正确,中文变乱码了·····

为什么同一段密文,同一个方法,在两个不同的地方调用,我测试的时候都是正确的(在解密类的mian中我也使用这一段密文测试过,结果是完全正确的,中文无乱码),但是从网络接受过来的密文(打印是同一段密文,完全相同),解密出来中文(英文字符还是正确的)就变乱码了呢?

Java IOS AES256 --------------------编程问答-------------------- 从网络收到的密文,解密后如下:
{
  "method" : "ISunRegister",
  "userName" : "浣??濡?,
  "password" : "d4c101ce3f821ca17c18fe0a5adf3b75"
}

这个真郁闷了···· --------------------编程问答-------------------- 中文用于网络传输要先用 java.net.URLEncoder 的encode方法加密再调用你自己的加密方法。
反过来,接收到密文的时候在调用自己的解密方法解密后需再调用 java.net.URLDecoder 解密,这样中文就正常了
补充:Java ,  Java EE
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,