Rav*_*i A 10 java security certificate x509certificate x509
我需要从X509证书中获取一些数据.
如果我在Windows中打开证书文件,它会以此格式显示其序列号.
ex. 39 65 70 eb d8 9f 28 20 4e c2 a0 6b 98 48 31 0d
Run Code Online (Sandbox Code Playgroud)
我试图用java获取的相同数据.加载后,我使用
x509.getSerialNumber();
and result is : 76292708057987193002565060032465481997
Run Code Online (Sandbox Code Playgroud)
那么这两者之间的区别是什么?我希望结果为上一个.
Dun*_*nes 21
Windows显示序列号的十六进制表示,而Java返回BigInteger结果X509Certificate.getSerialNumber().
要显示BigInteger为十六进制值,只需调用toString(16).
BigInteger bi = new BigInteger("76292708057987193002565060032465481997");
System.out.println(bi.toString(16));
Run Code Online (Sandbox Code Playgroud)
将输出:
396570ebd89f28204ec2a06b9848310d
Run Code Online (Sandbox Code Playgroud)