我需要从 X509 证书获取一些数据。
如果我在 Windows 中打开证书文件,它会以这种格式显示其序列号。
ex. 39 65 70 eb d8 9f 28 20 4e c2 a0 6b 98 48 31 0d
我试图使用 java 获取相同的数据。加载后,我使用
x509.getSerialNumber();
and result is : 76292708057987193002565060032465481997
那么这两者有什么区别呢?我想要的结果是上面的结果。
Windows 显示序列号的十六进制表示形式,而 Java 返回一个BigInteger
结果来自X509Certificate.getSerialNumber() http://docs.oracle.com/javase/7/docs/api/javax/security/cert/X509Certificate.html#getSerialNumber%28%29.
要显示BigInteger
作为十六进制值,只需调用toString(16)
.
BigInteger bi = new BigInteger("76292708057987193002565060032465481997");
System.out.println(bi.toString(16));
将输出:
396570ebd89f28204ec2a06b9848310d
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)