2017-08-25 92 views
0

對於X509Certificate格式的示例「自簽名證書」,我正在查看證書的序列號。解碼X509Certificate2的序列號?

我找不出什麼'編碼類型'或'轉換類型'正在使用,或如何使用它。該序列號是

在證書原始輸出4f:4b:6c:4c:f9:56:44:eb:85:0a:b1:36:b6:ec:e0:12

4F4B6C4CF95644EB850AB136B6ECE012在C#X509Certificate2原始輸出

那些2個值的任,當轉換爲序列號的純文本是

105400630530142072027530130683799068690

我以爲我只需要c將十六進制值轉換爲ASCII文本,但它給了我這個。

OKlL?VD??\n?6???\u0012

所以這是不是。什麼解碼方法在這裏產生正確的序列號?

[已編輯] - 剛學會它現在是「ASN.1二進制整數高達20個八位字節」。

回答

0

4F4B6C4CF95644EB850AB136B6ECE012是序列號的大端十六進制表示(又名只是0x4F4B6C4CF95644EB850AB136B6ECE012)。

使用類似http://www.mobilefish.com/services/big_number/big_number.php將該十六進制數轉換爲十進制數,我們得到105400630530142072027530130683799068690

請注意,在.NET中,GetSerialNumber()返回little-endian,但SerialNumber屬性返回big-endian。