我想解密ASP.Net中的文本。ASP.Net相當於openssl_private_decrypt和openssl_pkey_get_private
工作代碼解密在PHP中的文字是:
function rsaDecryption($dataEncrypted, &$dataDecrypted)
{
// Decrypt argument
$key = openssl_pkey_get_private(RsaKeyPrivate, RsaKeyPassphrase);
if (FALSE == $key)
{
echo("Failed to get the private key<br />\n");
return false;
}
if(!openssl_private_decrypt($dataEncrypted, $dataDecrypted, $key))
{
echo("Failed to decrypt message.<br />\n");
return false;
}
return TRUE;
}
我看到網絡上的幾篇文章,但沒有很清楚給我。這個article (16319559)與我所問的相反,但那也不是很清楚。
私鑰看起來像這樣
String myPrivateKey = "-----BEGIN RSA PRIVATE KEY-----\n<whole bunch of characters>==\n-----END RSA PRIVATE KEY-----
什麼是等價的C#的方法呢?
UPDATE:
我創建使用一對夫婦的答案的方法。
使用PEM功能解碼基於字符串的密鑰,請參見here。
OpenSSL代碼DecodeRsaPrivateKey()和GetIntegerSize(),請參閱here。
我還需要以下內容:
String strArgHtmlDecoded = HttpUtility.UrlDecode(dataEncrypted);
Byte[] byArgNo64 = Convert.FromBase64String(strArgHtmlDecoded);
導致
Byte[] byArgDecrypted = oProviderRsa.Decrypt(byArgNo64, false);
strDecrypted = Encoding.Default.GetString(byArgDecrypted);
我認爲我用研究回答了我自己的問題。測試後不久會發布我的答案,以幫助其他人。 –
似乎已在解決http://stackoverflow.com/a/251757/3325704 – jariq
該解決方案與另一個解決方案結合起來,大部分方式,只是我得到一個錯誤,看到更新。 –