我在哪里可以找到有关OpenSSL.Net的文档

时间:2011-12-18 15:07:19

标签: c# openssl

我发现DLL没问题,但我找不到文档。

我想使用C#使用私有RSA密钥解密一串文本。关于OpenSSL.Net的文档会很棒,特别是如何做到这一点的信息会很棒!

编辑:

字符串本身位于Base64中,我的私钥存储在* .pem文件中。我的最终方法如下,基于LOSTCODER的回答:

public string Decrypt(string textToDecrypt)
{
    byte[] payLoad = Convert.FromBase64String(textToDecrypt);

    StreamReader sr = new StreamReader("pemfilelocation.pem");
    string privateKey = sr.ReadToEnd();

    using (var key = CryptoKey.FromPrivateKey(privateKey, "myprivatekey"))
    {
        using (var rsa = key.GetRSA())
        {
            payLoad = rsa.PrivateDecrypt(payLoad, RSA.Padding.PKCS1);
        }
    }

    return Encoding.UTF8.GetString(payLoad);
}

三江源

1 个答案:

答案 0 :(得分:1)

使用以下例程使用RSA私钥解密byte []。如果要传递加密的“文本字符串”,请使用System.Text.Encoding.ASCII.GetBytes()将其转换为字节[](假定文本为ASCII编码)。

private static byte[] Decrypt(byte[] payLoad, string privateKey)
{
    using (var key = OpenSSL.Crypto.CryptoKey.FromPrivateKey(privateKey, null))
    {
        using (var rsa = key.GetRSA())
        {
            return rsa.PrivateDecrypt(payLoad, OpenSSL.Crypto.RSA.Padding.PKCS1);
        }
    }
}