X509 serial number using java

五迷三道 提交于 2019-12-04 02:23:45

Windows shows the hexadecimal representation of the serial number, whereas Java returns a BigInteger result from X509Certificate.getSerialNumber().

To display the BigInteger as a hexadecimal value, just call toString(16).

BigInteger bi = new BigInteger("76292708057987193002565060032465481997");
System.out.println(bi.toString(16));

Will output:

396570ebd89f28204ec2a06b9848310d

The first one is hexadecimal value of the certificate. The other one is decimal.

Now it depends on how you convert the initial certificate bytearray for printing it out.

Lets say this is your certificate:

byte[] cert = { (byte) 0xFD, (byte) 0xB1, (byte) 0xDD, ..., (byte) 0x00 };
BigInteger certVal = new BigInteger(cert);  
System.out.println("And result is  (hex): " + certVal.toString(16));
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!