Java IOS AES256加密解密

a363211861 2013-07-04 10:58:41
最近折腾Java和IOS,现在在AES加密传输的时候遇到一个奇怪的问题,求大神指导····

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

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

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


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

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

...全文
114 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
sondywoo 2013-09-26
  • 打赏
  • 举报
回复
中文用于网络传输要先用 java.net.URLEncoder 的encode方法加密再调用你自己的加密方法。 反过来,接收到密文的时候在调用自己的解密方法解密后需再调用 java.net.URLDecoder 解密,这样中文就正常了
a363211861 2013-07-04
  • 打赏
  • 举报
回复
从网络收到的密文,解密后如下: { "method" : "ISunRegister", "userName" : "浣??濡?, "password" : "d4c101ce3f821ca17c18fe0a5adf3b75" } 这个真郁闷了····

67,515

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧