2016-09-04 8 views
0

私たちは、UDPポート上でHMAC-SHA1署名付きメッセージをRTLSサーバーに送信できるネットワークコントローラ(Aruba)をいくつか持っています。我々は書かれた簡単なJavaプログラムを持っており、UDPポート上でデータパケットを受信するLinuxサーバ上に配備されています。コントローラは、メッセージに署名するためにキーを使用するため、以下のようにメッセージを消化された形式で取得しています。共有キーを使用して実際のメッセージを抽出する方法はありますか?Java読み込みHMAC-SHA1署名付きメッセージ

RECEIVED:*gdrÈ$�p��s�〜 が受信�����q���2:、$drÈ�H)��5ï ¿½r�[�b×C�'��� 受信した:0� �����aï¿½ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½ï¿ ½?�� 受け取り:+�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

あなたの質問が不足している可能性がありますが、メッセージが本物であることを確認するためにHMACが使用されています。共有キーとメッセージは特別なハッシュを生成するために使用され、メッセージの最後に送信されたハッシュと等しい場合、メッセージは真正である。したがって、HMACだけが使用されている場合、残りのデータはプレーンテキストであり、読み取ることができるはずです(バイナリ形式である可能性があります)。ただし、暗号化を使用している場合は、共有鍵を使用してデータを読み取ってから読み取る必要があります。 –

答えて

0

私たちは、メッセージは、Googleのprotubufを使用して直列化されたい。 .protoファイルを使用して、必要なオブジェクトを生成してデシリアライズすることができました。

関連する問題