论坛首页 Java企业应用论坛

.net客户端调用java服务端,通讯数据加密解密思路及过程

浏览 3245 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2008-03-08  
SOA
目前系统客户端用.net实现,java服务端采用了webservice的方式向客户端提供服务。

要实现的功能:验证从.net客户端登陆的用户的合法性。用户从客户端登陆,需要调用java接口验证用户信息的合法性。原java系统中采用了MD5的方式对用户的某些数据进行加密,加密后的数据保存到了DB中。

问题1:用户的某些敏感数据不能在.net的客户端用MD5进行处理。
因为原java系统中用的MD5不是通用的算法,而是对通用MD5进行了改造。糟糕的是,现在做.net客户端的程序员无法实现这个MD5。

解决办法:MD5的工作由java端处理。
即客户端传明文到java端,由java端对用户数据进行MD5处理。这样就实现了用户信息验证的功能。同时又带来了另一个问题。


问题2:数据通讯中怎么能传明文呢?太不安全了吧,别人截获了http消息,不就拿到用户数据了吗,太危险了!

解决办法:
用户的数据需要在传输的过程中做加密处理。客户端和服务端一致决定采用DES的加密算法进行加密,但具体处理的过程
中又遇到了一些问题。


问题3:.net端加密出来的数据在java端却无法正确解密。
两边的加密解密不匹配。查了一些资料才知道,.net端默认的DES算法模式和java的不同。感叹互联网的威力啊,可以找到那么多的相关资料,然后我就修修补补,敲敲打打,历尽百辛千苦,终于小功告成,呵呵。


最后的解决办法:
1.客户端和服务端对通讯数据进行了加密处理,杜绝了传递明文。
2.MD5的工作放到java端来做。

我对数据加密所知甚少,而且对通用的处理方式也不太了解,真诚希望能够得到有经验的各位多多指点,谢谢!

   发表时间:2008-03-09  
你可以试试 PHPRPC for .NET 和 for Java,它可以实现 Java 和 .NET 的相互调用,并且可以部分加密传输数据。

for Java 版本的用户指南已经发布:http://www.phprpc.org/forum/viewthread.php?tid=62&extra=page%3D1

for .NET 版本的用户指南过些日子也会发布,基本用法与 Java 是一样的。
0 请登录后投票
   发表时间:2008-03-10  
多谢andot,有时间我去看看
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics