我在哪里可以找到有关OpenSSL.Net的文档
问题描述:
我发现DLL没问题,但是我在查找文档时遇到了问题。我在哪里可以找到有关OpenSSL.Net的文档
我想使用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);
}
三江源
答
使用下列程序解密一个byte []使用RSA私钥。如果您想传递加密的“文本字符串”,请使用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);
}
}
}
看看http://openssl-net.sourceforge.net/ – 2011-12-18 15:16:15
高兴,如果它帮助:)但是我宁愿重构它保持IO功能了。事实上,你应该只读一次.pem文件,而不是每次解密一些文本。 – 2012-03-14 11:38:55
当然,我在我的类中创建了一个私有只读字符串,然后将IO功能添加到了我的构造函数中! – JMK 2012-03-14 12:08:21