我需要从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从
X509Certificate.getSerialNumber()
返回BigInteger结果.
要将BigInteger显示为十六进制值,只需调用toString(16)即可.
BigInteger bi = new BigInteger("76292708057987193002565060032465481997"); System.out.println(bi.toString(16));
会输出:
396570ebd89f28204ec2a06b9848310d