① 如何從user.p7b,導出base64格式的根證和伺服器證書,需要詳細步驟
很簡單,你雙擊user.p7b,打開證書-當前用戶下拉菜單,選中對應文件夾,然後裡面有個證書的文件夾,裡面應該有幾個證書,看一下對應的是哪一級。一般域名或者IP的是伺服器證書,右鍵點擊它,然後點擊所有任務,點擊導出然後點擊下一步,選擇base64格式,也就是cer格式。導出根證書操作一樣。請採納。
② 如何將文件中Base64進制數據生成X509證書
很簡單,你雙擊user.p7b,打開證書-當前用戶下拉菜單,選中對應文件夾,然後裡面有個證書的文件夾,裡面應該有幾個證書,看一下對應的是哪一級。一般域名或者IP的是伺服器證書,右鍵點擊它,然後點擊所有任務,點擊導出然後點擊下一步,選擇base...
③ SSL中,公鑰,私鑰,證書的後綴名都是些啥
Linux 下的工具們通常使用 base64 編碼的文本格式,相關常用後綴如下:
* 證書:.crt, .pem
* 私鑰:.key
* 證書請求:.csr
.cer 好像是二進制的證書。當然你也可以把證書和 key 放到同一個文件里邊。這時候擴展名通常叫 .pem。Java 的 keystore 什麼的都是二進制的,好像是自有格式。
其實在類 UNIX 系統上,關注文件名後綴的程序並不多的。而證書、密鑰都是有明顯的標識的,所以相關軟體(如 openssl)可以處理,而不管你用的什麼擴展名。當然亂用擴展名自己識別不便,桌面環境也不能將擴展名與默認操作、圖標關聯起來。
如果不知道一個文件是個啥,可以使用 file 命令識別試試。有經驗的也可以直接拿文本編輯器打開看看。
④ RSA公鑰只返回一串base64字元 怎麼使用
正常的情況下RSA公鑰是不會只返回一串base64編碼的。我們從原理上說起:
RSA密鑰對有很多個參數,d /dp/dq/Expoent/InverseQ/Molus/p/q,原理上我們是知道他是由兩個大素數p和q的乘積,正常的情況下含有私鑰的文件會反這些參數全部給出,而如果只給出公鑰時,事實上是給定了n(Moles)和e(Exponent)兩個參數,這兩個參數可以用來加密,我們也都知道,如何將這兩個參數有效地傳遞給另一方呢?或者說我們把這兩個參數如何給其他人呢,這個就是我們常說的公鑰文件,當然有什麼pfx等等,但這里我們如果簡要地傳遞給第二方時,我們會經常使用一個對象RSAParameters類,這個對象就是這幾個參數,如果我需要傳遞給你時,有效的方式就是把RSAParameters序列化,然後把序列化的內容給你就可以了。
在C#中有兩種常用的序列化形式,一種就是byte序列化,一種就是xml序列化(一般使用JSON序列化的時候不多,因為javascript對實現RSA原生支技較為復雜)。
byte序列化不適合在網路上傳輸,所以一般都使用XML序列化,xml適合網上傳輸,他會把二進制自動序列化為base64編碼。而事實上RSAParameters類和幾個參數全是byte類型的(方便存儲超大數字),所以會序列化成如下形式:
<RSAKeyValue>
<Molus>…</Molus>
<Exponent>…</Exponent>
<P>…</P>
<Q>…</Q>
<DP>…</DP>
<DQ>…</DQ>
<InverseQ>…</InverseQ>
<D>…</D>
</RSAKeyValue>
很明顯這是一個序列化後的xml形式,其中幾個參數都是被自動序列化成base64編碼,如果是公鑰的話,其中<Molus>和<Exponent>兩個參數有值,其他的在序列化過程中如果沒有值不序列化,所以你可以最終看到只有這兩個參數的一個結構。
PS:序列化與反序列化由RSACryptoServiceProvider類的ToXmlString(bool)執行,其中參數表示是否含有私鑰,如果是則全部參數都會存在,否則只含有公鑰。拿到這個文件時,可以直接使用FromXmlString(string)進行導入即可使用。
但事實上,RSACryptoServiceProvidder提供的不僅有ToXmlString()方法,還存在有ExportCspBlob()方法和ExportRSAParameter()方法。導出RSAParameter方法不用說了,基本上用於本地版本,就是導出一個RSAParameter結構,而ExportCspBlob方法與ToXmlString()有一定的比較性,它導出的是一個二進制的形式,也就是二進制序列化後的數值,由於其是二進制形的數值。但兩種形式的序列化雖然都是序列化RSAParameter結構,但並沒有讓你直接使用XmlSerializer類進行序列化,而由於RSACryptoServiceProvider中的方法已經實現了,當然反序列化也是同理。
但由我們在使用.net自動生成公私鑰時,其Exponent參數永遠是65537(ABAQ),其實對於.net自動生成的公私鑰對算是一個測試的公私鑰對,所以它保證了Exponent為固定的一個值。所以很多人不太明白這個道理,以為真正使用的公私有對的e都一定被選定為該值,所以有一類人為了「節省」帶寬,自做主張在傳遞公鑰時只傳遞了一個Molus的值!換句話來說,這些非商用的情況下的可行的,而且在商用的情況下也有一定的可行性。這里你可能只看到對方傳遞的是一個base64編碼——這種情況顯然不是規范的,所以盡量不使用或少使用,如果某企業有自己的證書或提供自己的公鑰時,這種情況顯然會導致你重新修改程序。但這也是你見到全是base64編碼的原因。(他只傳遞了molus的值 ,而不是RSAParameter序列化結構)。
另外一類的程序員,喜歡造輪子,或者是他們喜歡上了ExportCspBlob()和ImportCspBlob()兩個方法,不管是本地還是網路傳輸,可憐他們只會用一對的方法,總是不知道ToXmlString()和FromXmlString()這一對方法是用來干什麼的。所以他們愛好就是動不動用ExportCspBlob()方法導出公鑰或私鑰對。如果是本地程序這當然沒有問題,但如果是遠程的話,也使用這個,但導出的一堆byte他們沒辦法通過網路(我指的html之類的通訊,不是CS模式下)傳輸,當然有,遇到我們沒有傳遞二進制時設計成編碼就可以了。所以指出了一堆二進制之後,把這個二進制進行base64編碼來傳遞——這種情況我見到的最多!如果你看到這種的一堆base64時,需要先手式把base64編碼轉換成二進制,然後使用ImportCspBlob()方法再導入進去。這種情況看起來沒有大問題,但實際上是繞了一個圈圈,感情就會使用ExportCspBlob()方法,為什麼不直接考慮使用ToXmlString()方法呢?所以我看到很多情況下base64位編碼基本上都屬於這種情況!
事實上,我的建議是,如果是本地存儲的情況下,比如需要存儲成一個文件,這時可以使用ExportCspBlob()方法導到成byte數組,然後可以直接將該數組寫入到dat文件中,以方便其他時間的使用;如果是網路傳輸的情況下,因涉及到網路協議的問題,二進制流傳輸還行,但如果是文本流傳輸時使用ToXmlString()方法導出,可以直接讓其他程序使用。雖然在微軟上沒有這么規定,但如果你這么使用卻是一個很恰當的使用場景(二進制序列化時,由於參數的值本身就是二進制,所以它序列化時其他最為簡單,那些個二進制的值不需要任何的編碼處理,所以性能會高一些,而xml序列化則涉及到二進制的編碼,所以性能上沒有直接二進制高,但如果你先導出成二進制,再base64編碼,就讓人難以想通了,完全屬於對.net類庫不熟悉而造成的!很多人可能會說,其他語言中導到的二進制——如果基於這種考慮,理由似乎說得過去,但至少常見的語言中還都是支持xml形式的,包括javascript新版語言原生支持RSA,它只支持xml形式和JSON形式,並不支持二進制形式。所以先導出二進制再編碼base64形式純屬多餘)。
PS:這一點更為重要,不少人把RSA的公私鑰對導出後直接保存成文件,事實上我也這么說了,但是在windows中,盡量避免這樣做,除非你要對機器進行遷移時或者其他原因需要,否則不要大搖大擺地把公私鑰對存儲成一個文件,如果被別有用心的人拿了去,你自己想想後果是什麼樣的!windows本身提供了一種叫密鑰容器的機制,可以存儲DSA/RSA/DES/TDES等非對稱或對稱密鑰的安全存儲。應當使用這種安全存儲的機制,而不是把公鑰密文件大搖大擺在丟在某個目錄下。關於密鑰容器的問題,你可以查閱MSDN上,可以直接使用的。類似的情況還有,某些情況下我們從CA(認證中心)獲得一個證書時,也是把證書導入到容器中,然後設置導出密碼,銷毀原證書文件。如果在遷移時,可以使用密鑰導出私鑰證書,然後再到其他機器上安裝。很多人不太理解這樣做的目的,其實密鑰管理還涉及到一個人員管理的問題,這樣證書只會經過某個特定的人進行處理,其他任何人都無法拿到該證書,但他們可以使用,所以這樣做是十分安全的。
⑤ DER格式數字證書為何在某些場合要用Base64編碼成PEM
fdsfdseersfdxf網路地圖
本數據來源於網路地圖,最終結果以網路地圖最新數據為准。
⑥ 如何獲得證書的BASE64編碼
這幾天項目中需要使用到BASE64格式的證書信息,我就從IE中導出證書,裡面有可選項,你可以選擇不需要導出證書私鑰,然後選擇導出BASE64編碼格式X.509的證書,即.CER格式的證書,導出到本地之後,使用UE之類的工具打開之後就可以看見裡面的信息,類似這種-----BEGIN CERTIFICATE-----
⑦ 如何查看證書的16進制der編碼,及證書的各個域der格式
證書一般都是x.509格式的證書,然後經過DER編碼,DER是TLV編碼,然後再經過base64編碼後存儲的。
正確的方法,應該是,把證書文件,用binary方式,傳送到linux下,然後用linux中的base64來進行文件解 碼。
命令如下:base64
-d -i ca.crt > crt.hex
-d的命令是,然後-i是--ignore-garbage
When decoding, ignore non-alphabet characters.
Decoding
require compliant input by default, use --ignore-garbage to
attempt to
recover from non-alphabet characters (such as newlines) in
the encoded
stream.
然後再用vim打開crt.hex,這時候再轉換成16進制,就可以查看到正常的證書16進制的DER編碼了。
⑧ 求PKCS#10中文資料,CMC中文資料,BASE64中文資料,及證書解析、證書申請解析的源代碼或工具!
IYGSBOIYGFIOJUH HIOAGSIOHOAIUHUoiasuh IAOALOOAEOHFIPOIH怕死去網上找罵oikjdbikuchebdj 發哦 v v 偶爾請按黑傑克沒個萬兒
⑨ 如何導出cer證書的Base64編碼信息
1、將證書雙擊,安裝到IE中,如果是個人證書會安裝到:在IE的 工具 -> internet選項 -> 內容 -> 證書 -> 個人
2、打開IE,在在IE的 工具 -> internet選項 -> 內容 -> 證書 -> 個人 中,找到這張證書,選中它
3、點擊「導出」按鈕
4、點擊「下一步」,再點擊「下一步」
5、選擇「Base64編碼X.509(.cer)」
6、點擊「下一步」,一直到保存完畢
OK,cer證書的Base64編碼格式已經生成完畢。
⑩ 數字證書的證書格式
數字證書的格式普遍採用的是X.509V3 國際標准,一個標準的 X.509 數字證書包含以下一些內容:
1、證書的版本信息;
2、證書的序列號,每個證書都有一個唯一的證書序列號;
3、證書所使用的簽名演算法;
4、證書的發行機構名稱,命名規則一般採用X.500格式;
5、證書的有效期,通用的證書一般採用UTC時間格式,它的計時范圍為1950-2049;
6、證書所有人的名稱 (Subject),命名規則一般採用X.500格式;
7、證書所有人的公鑰;
8、證書發行者 (Issuer) 對證書的簽名。
(10)base64證書擴展閱讀
數字證書主要具以下三方面特徵:
第一,安全性。
用戶申請證書時會有兩份不同證書,分別用於工作電腦以及用於驗證用戶的信息交互,若所使用電腦不同,用戶就需重新獲取用於驗證用戶所使用電腦的證書,而無法進行備份,這樣即使他人竊取了證書,也無法獲取用戶的賬戶信息,保障了賬戶信息。
第二,唯一性。
數字證書依用戶身份不同給予其相應的訪問許可權,若換電腦進行賬戶登錄,而用戶無證書備份,其是無法實施操作的,只能查看賬戶信息。
第三,便利性。
用戶可即時申請、開通並使用數字證書,且可依用戶需求選擇相應的數字證書保障技術。用戶不需要掌握加密技術或原理,就能夠直接通過數字證書來進行安全防護,十分便捷高效。