0

Javaを使用してリモートホストの証明書を読み取ろうとしています。エンコーディングタイプを取得したい。私はタイプしました:

    System.out.println("The encoding is: "+ x509Cert.getEncoded().toString());

私が得る出力は次のとおりです。

The encoding is: [B@597c3925

何が問題ですか ?

編集:x509CertはタイプX509Certificateのオブジェクトです。

4

2 に答える 2

0

問題が何であったかについての洞察を与えるために、から取得したオブジェクト(この場合は配列)はメソッドをx509Cert.getEncoded()オーバーライドしないため、 -classで定義されているtoStringようにデフォルトでになります。getClass().getName() + '@' + Integer.toHexString(hashCode())Object

そして、メモとして、あなたがするとき

"some string" + someObj.toString()

実際に呼び出す必要はありませんtoString-それ自体で呼び出されます。あなたはただすることができます

"some string" + someObj
于 2012-10-28T13:21:21.733 に答える
0

Certificate.getEncodedを返しますbyte[]。これは、テキストではなく、証明書データ(X509証明書の場合はDER)のバイナリ表現を提供するためです。PEM形式が必要な場合は、MIMEスタイルのbase 64(これにはApache commonsコーデックを使用できます)を使用してエンコードされ、使い慣れた開始行と終了行が追加されたDER形式です。

于 2012-10-28T16:07:45.780 に答える