当前位置: 首页 > 面试题库 >

Java中的网络通信加密

康赞
2023-03-14
问题内容

我和一个朋友正在使用客户端/服务器-
体系结构进行Java游戏。它运行良好,但是我遇到了问题。我们使用TCP套接字在服务器和客户端之间建立网络。我们的网络协议未加密,只有看管流的人才能阅读。

我们考虑过如何对它应用某种加密技术以隐藏登录信息并防止人们编写自己的客户端。但是,基本的事情,例如增加/减少字节,似乎很容易弄清楚。

用于加密游戏(或至少游戏登录信息)的网络通信的常用方法是什么?用Java编写服务器和客户端后,有没有有用的Java库?


问题答案:

使用公共密钥加密(例如RSA)并实现类似SSL
Handshake
(SSL握手)之类的功能,或者当然使用SSL-
在这里您可以看到一个示例。

这是一个简化的序列:

  • 服务器将其公共RSA密钥发送给客户端
  • 客户端生成对称密钥(例如使用AES)
  • 客户端使用服务器的公共密钥加密对称密钥并将其发送到服务器
  • 服务器解密收到的对称密钥

现在,客户端和服务器都有一个密钥,任何人都无法知道。然后使用该密钥加密所有数据



 类似资料:
  • 用途: 提供对网络通信的访问 Addressing, Protocol Families and Socket Types Looking up Hosts on the Network Finding Service Information Looking Up Server Addresses IP Address Representations TCP/IP Client and Serve

  • 本文向大家介绍Java网络通信中ServerSocket的设计优化方案,包括了Java网络通信中ServerSocket的设计优化方案的使用技巧和注意事项,需要的朋友参考一下 前言:在java的网络通信中,两个不同节点的主机想要进行通信则可以通过建立Socket对象(相当于客户端主机,向服务端请求发送信息)和ServerSocket对象(相当于服务端主机,接收客户端的连接请求并回复信息)实现。 1

  • 使用QQ轻游戏后台 QQ轻游戏后台用现成的房间逻辑,开发者可以使用进行房间创建、加入、离开、以及自带的帧同步以及消息同步方案。 使用QQ轻游戏后台详情跳转至此处 自建后台 使用自建后台,开发者可以使用引擎自带的 BK.WebSocket、BK.Socket、BK.HttpUtil三种方法进行后台数据的交换。 使用自建后台详情跳转至此处 因为自建后台的房间概念QQ轻游戏并不理解,为在聊天窗中模拟房间

  • 德州仪器(TI)的CC3000 WiFi模块是一款小型银色封装,最终为您的Arduino项目带来了易于使用,价格合理的WiFi功能。 它使用SPI进行通信(而不是UART!),因此您可以根据需要快速推送数据,也可以根据需要尽可能慢地推送数据。 它有一个带有IRQ引脚的适当中断系统,因此您可以进行异步连接。 它支持802.11b/g,开放/ WEP/WPA/WPA2安全性,TKIP和AES。 带有“

  • Chrome应用通过sockets接口支持TCP和UDP协议,使网络通信成为可能。使用sockets接口时,声明权限比较特殊,并不在permissions中声明,而是直接在Manifest的sockets中声明: "sockets": { "udp": { "send": ["host-pattern1", ...], "bind": ["host-patt

  • 在网络流量工具Charles的安装和用法和6.1 分析HTTP/HTTPS网络流量 这两节,我们介绍了对iOS的网络通信进行分析的方法。 利用文章介绍的方法,可以发现有以下几类: 发送明文密码 有的应用一点也不注意用户数据的安全,竟然发送明文密码。读者可以拿自己常用的App试试,应该能发现这种App,我发现我常用的一个电影相关App竟然用HTTP直接发送用户的明文密码。 发送密码的md5 有的应用