有人可以請幫我解決以下問題。 我使用PowerShell,到目前爲止,我已經想出瞭如何獲取X509證書平面文件,例如Cert.cer和音樂會它到一個Base64字符串的存儲(例如在數據庫中作爲一個字符串等),然後再將其轉換回System.Security.Cryptography.X509Certificates.X509Certificate2對象將base64字符串轉換爲X509 certifcate
請看我的代碼如下遠
$CertifcateFileFullPath = "C:\temp\cert.cer"
$Cert = new-object security.cryptography.x509certificates.x509certificate2 -ArgumentList $CertifcateFileFullPath
$Obj2 = [System.Convert]::ToBase64String($Cert.RawData)
$Obj3 = [System.Security.Cryptography.X509Certificates.X509Certificate2]([System.Convert]::FromBase64String($Obj2))
現在的事情是我想寫的對象$ OBJ 3迴文件系統作爲平面文件(如Cert.cer),這是可讀/可作爲原始憑證。如果我使用| out-file C:\ Temp2 \ Cert.cer等等...我得到的文件比原始文件大得多,不可讀(例如,不能像普通的證書文件那樣打開)。我認爲編碼是寫出對象到文件系統時的問題(我相信證書文件是ASN 1編碼二進制文件)
有人可以幫助我實現這一點,請提前致謝。
Ë布蘭特
上面的代碼沒有出來過好讓我嘗試粘貼再次$ CertifcateFileFullPath =「C:\ TEMP \ cert.cer」 $證書=新對象security.cryptography.x509certificates.x509certificate2 -ArgumentList $ CertifcateFileFullPath $ OBJ2 = [System.Convert] :: ToBase64String($ Cert.RawData) $ OBJ3 = [System.Security.Cryptography.X509Certificates.X509Certificate2]([System.Convert] :: FromBase64String($ OBJ2)) – user2971567