X509 serial number using java

后端 未结 2 1254
长情又很酷
长情又很酷 2021-02-20 09:13

I need to get some data from X509 certificate.

If I open a certificate file in windows, its showing its serial number in this format.

ex. 39 65 70 eb d8         


        
相关标签:
2条回答
  • 2021-02-20 09:41

    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
    
    0 讨论(0)
  • 2021-02-20 09:59

    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));
    
    0 讨论(0)
提交回复
热议问题