我们有一些网络控制器(Aruba)可以在UDP端口上向RTLS服务器发送HMAC-SHA1签名消息。我们编写了简单的Java程序,并部署在接收UDP端口数据包的Linux服务器上。控制器使用密钥对消息进行签名,因此我们以消化格式获取消息,如下所示。有没有办法可以使用共享密钥从中提取实际的消息?
收到:*gdrÈ$�p��s�~�����q���2 收到:,$drÈ�H)��5�r�[�b×C�`�� 收到:0 �����a��#�A�cL�i�?�� 收到:+�dr��#J~e%��S�����??
接收消息的Java代码:
public class UDPServer
{
public static void main(String args[]) throws Exception
{
DatagramSocket serverSocket = new DatagramSocket(9999);
byte[] receiveData = new byte[1024];
byte[] sendData = new byte[1024];
while(true)
{
DatagramPacket receivePacket = new DatagramPacket(receiveData, receiveData.length);
serverSocket.receive(receivePacket);
String response = new String(receivePacket.getData(), 0,
receivePacket.getLength(), "UTF-8");
System.out.println("RECEIVED: " + response);
//
}
}
}
答案 0 :(得分:0)
我们发现邮件是使用google protubuf序列化的。使用.proto文件,我们能够生成所需的对象并反序列化。