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