在Window系統下打開證書檔案顯示的序列號如下圖:

呼叫OpenSSL的代碼如下:
X509 *x;
FILE *fp = NULL;
unsigned char buf[5000], *p;
int len;
ASN1_INTEGER* Serial = NULL;
fopen_s(&fp,"1.cer", "rb");
if (!fp) return;
len = fread(buf, 1, 5000, fp);
fclose(fp);
p = (unsigned char*)base64_decode((const char*)buf,len);
x = X509_new();
d2i_X509(&x, (const unsigned char **)&p, len);
Serial = X509_get_serialNumber(x);
printf("serial number is : ");
for (int i = 0; i < Serial->length; i++){
printf("%02x", Serial->data[i]);
}
X509_free(x);
呼叫OpenSSL獲取該證書的序列號顯示的卻是如下圖:

出現的問題:通過OpenSSL獲取到的證書序列號前面的0被過濾掉了。怎樣可以讓OpenSSL獲取到完整的證書序列號?
路過的大神們,給小弟一點提示吧
uj5u.com熱心網友回復:
難道沒有人遇到過這樣的問題么,求大神的降臨。
uj5u.com熱心網友回復:
哥們,你解決了嗎?轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/80093.html
標籤:基礎類
上一篇:new出來的二維陣列跟auto區域型別的二維陣列不同么?為什么從同樣的檔案中接收到不同的結果?
下一篇:qt c++畫坐標代碼問題
