Javaを使用してリモートホストの証明書を読み取ろうとしています。エンコーディングタイプを取得したい。私はタイプしました:
System.out.println("The encoding is: "+ x509Cert.getEncoded().toString());
私が得る出力は次のとおりです。
The encoding is: [B@597c3925
何が問題ですか ?
編集:x509CertはタイプX509Certificateのオブジェクトです。
Javaを使用してリモートホストの証明書を読み取ろうとしています。エンコーディングタイプを取得したい。私はタイプしました:
System.out.println("The encoding is: "+ x509Cert.getEncoded().toString());
私が得る出力は次のとおりです。
The encoding is: [B@597c3925
何が問題ですか ?
編集:x509CertはタイプX509Certificateのオブジェクトです。
問題が何であったかについての洞察を与えるために、から取得したオブジェクト(この場合は配列)はメソッドをx509Cert.getEncoded()
オーバーライドしないため、 -classで定義されているtoString
ようにデフォルトでになります。getClass().getName() + '@' + Integer.toHexString(hashCode())
Object
そして、メモとして、あなたがするとき
"some string" + someObj.toString()
実際に呼び出す必要はありませんtoString
-それ自体で呼び出されます。あなたはただすることができます
"some string" + someObj
Certificate.getEncoded
を返しますbyte[]
。これは、テキストではなく、証明書データ(X509証明書の場合はDER)のバイナリ表現を提供するためです。PEM形式が必要な場合は、MIMEスタイルのbase 64(これにはApache commonsコーデックを使用できます)を使用してエンコードされ、使い慣れた開始行と終了行が追加されたDER形式です。