0

我正在尝试使用 Java 读取远程主机的证书。我想获得编码类型。我输入:

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

我得到的输出是:

The encoding is: [B@597c3925

问题是什么 ?

编辑:x509Cert 是 X509Certificate 类型的对象。

4

2 回答 2

0

Certificate.getEncoded返回byte[],因为它为您提供了证书数据的二进制表示(在 X509 证书的情况下为 DER),而不是文本。如果您希望它采用 PEM 格式,那么这是使用 MIME 样式 base 64 编码的 DER 表单(您可以为此使用Apache commons 编解码器)并添加了熟悉的开始和结束行。

于 2012-10-28T16:07:45.780 回答
0

只是为了让您了解问题所在:从中获取的对象(在本例中为数组)x509Cert.getEncoded()不会覆盖该toString方法,因此它默认为-classgetClass().getName() + '@' + Integer.toHexString(hashCode())中定义的。Object

就像一个注释,当你这样做时

"some string" + someObj.toString()

您实际上不需要调用toString- 它会自行调用。你可以做

"some string" + someObj
于 2012-10-28T13:21:21.733 回答