以下のタグはSAML応答の一部です。私はCipherValueの後に解読する必要があります。 私はCipherValue(文字列)を次の関数に渡しますが、正しい値を返しませんでした。何が間違っていますか?RSA/ECB/PKCS1Paddingによる復号化
ドキュメントは言う:
は、証明書から秘密鍵を取得します。
RSA/ECB/PKCS1Paddingを使用して暗号化された鍵を復号化します。 (キー値以下の場合)
private string RSADecryption(string dataToDecrypt)
{
String certificateLocation = ConfigurationManager.AppSettings.Get("CertificateLocation");
String certificateStore = ConfigurationManager.AppSettings.Get("CertificateStore");
string certificateSubject = ConfigurationManager.AppSettings.Get("CertificateSubject");
String decryptedKey = string.Empty;
try
{
X509Certificate2 encryptionCertificate = X509Utilities.GetCertificateBySubject(certificateSubject, certificateStore.ParseAsEnum<StoreName>(),
certificateLocation.ParseAsEnum<StoreLocation>());
if (encryptionCertificate == null)
Helper.LogMessage(" Did not find Encryption Certificate on the sserver ");
RSACryptoServiceProvider rsaProvider = (RSACryptoServiceProvider)encryptionCertificate.PrivateKey;
byte[] cipherbytes = Convert.FromBase64String(dataToDecrypt);
byte[] plainbytes = rsaProvider.Decrypt(cipherbytes, false);
System.Text.ASCIIEncoding enc = new System.Text.ASCIIEncoding();
decryptedKey = enc.GetString(plainbytes);
}
catch (Exception e)
{
Helper.LogMessage(e.Message + " Key Parsing error. DataToDecrypt = " + dataToDecrypt);
throw e;
}
return decryptedKey;
< CipherData> < CipherValue> HQrhmJpbd0p32QjOFrOKQhNSr4q6bcbg + 9AhxJS6yZR19Nqh3VDMwOW2wsCBuSmFlv7WjR7TzW6URjINvNbv2nMfsKu3M9dscxhmGY + jVtUJ6sTf7FHdK9D76miAdq1EIsm0lNtdW5etMx/85iMiFOObbyZuB8oaYeThToVjTUVYfNGQOJ99wvh8OL/40eomDlKfwN4eQ88kVbY1eUO1OxEfQsUbDWyXvZEvBPmYUb7km + C6rX8UjsLUrqOOpXym9oi5dH + T + kAP2Rb5N16VRxJHPGF/gXeuD + Jq4FSGtjiiBE9qvBIFWkt4hYabSgUE3Li5DqMoH/P9/EGqf6mpyvHjv8yJYRTpA // 5nM43z/KCUFX8VrFCXBp0N1Y40zpZWJW2y9fSIlyGyMas1ByBlkxpRgjqqnv1L + p ZohYmKQsOILhM34TASzddYgeQbPfoAuC8i/4cMWYDrO + NP + n5d97FZDPs3u3gMWefhWoSt0BSEwUCbaNmS9I39ihFwyT/6rmurgLvfY0AaFz16Q3qQlH3yVdGR2j + A2spfJLyMrRcVTSff6HKa6LC7xUO9aBF2WpEw1mxI0QXMY2VMtSwdT4pzMc + itbDe9r4ZW9BZhA7qsBd0oOVRxxxNvOo9eIUlLyGRzvMbX + oOUiHkAm/oil7Vll5JzvlzVrc4dzzOUA = </CipherValue> </CipherData>
質問を編集して、上記のコードが現在どのように失敗しているか(例外は何か)を含めてください。それはあなたを助けることをより容易にするでしょう。 – poupou
上記の関数の戻り値は "!?????? q ?? $ \" ^?y ?? Jです。 – user228777