Java:加密的服务器/客户端双向通信?
Posted
技术标签:
【中文标题】Java:加密的服务器/客户端双向通信?【英文标题】:Java: encrypted server/clients bi-directional communication? 【发布时间】:2011-12-14 08:01:35 【问题描述】:在服务器和多个客户端之间建立加密双向通信的最佳方式是什么?
服务器有持久化数据库,会向客户端发送数据,客户端会发回数据。这必须加密,以最好地防止网络嗅探工具等。
Netty 服务器会是一个很好的选择吗?我可以使用带有 netty 和客户端应用程序的套接字连接到服务器吗?
谢谢。
【问题讨论】:
【参考方案1】:如果您的意思是通信协议是 HTTP,并且您使用的是标准 HTTP 环境(HTTP 服务器、Servlet、JSP 等),请使用 HTTPS 通信。它保证双向加密和保护您的数据。
【讨论】:
还有哪些非http解决方案?我问这个是因为我读到获得 https 证书非常昂贵。 您无需使用证书颁发机构即可使用 SSL。如果您将服务器的公钥捆绑在客户端中,则不需要 CA……这意味着您无需支付任何费用。 使用 HTTPS 比使用自己的内部加密或自己使用 Java 加密 API 更快、更容易、更安全。您可以颁发自己的密钥,甚至购买 SSL 证书也不会花费太多,请在 google 上搜索。投票赞成这个答案。【参考方案2】:您可以加密套接字并通过网络发送您喜欢的任何协议。 HTTPS 只是其中之一。例如,我们在 netty 之上实现了 SMTPS,没有任何问题。
您只需要定义协议,编写编码器/解码器并在管道中使用 SslHandler 添加它们。就是这样。
【讨论】:
以上是关于Java:加密的服务器/客户端双向通信?的主要内容,如果未能解决你的问题,请参考以下文章