///<remarks>
/// DotNet.Utilities.RSACryption cryption = new DotNet.Utilities.RSACryption();
/// cryption.RSAKey_String(out string pubKey, out string priKey);
/// string message = "test";
/// string RSAEncryptMessage = cryption.RSAEncrypt_String(pubKey, message);
/// string res = cryption.RSADecrypt_String(priKey, RSAEncryptMessage);
/// </remarks>
/// <summary>
/// RSA 的密钥产生 产生私钥 和公钥
/// </summary>
/// <param name="publicKey">和公钥</param>
/// <param name="privateKey">私钥</param>
public void RSAKey_String(out string publicKey, out string privateKey)
{
System.Security.Cryptography.RSACryptoServiceProvider rsa = new RSACryptoServiceProvider();
byte[] publicKeyBytes = rsa.ExportCspBlob(false);
byte[] privateKeyBytes = rsa.ExportCspBlob(true);
publicKey = Convert.ToBase64String(publicKeyBytes);
privateKey = Convert.ToBase64String(privateKeyBytes);
}
/// <summary>
/// RSA的加密函数 String
/// </summary>
/// <param name="stringPublicKey"></param>
/// <param name="m_strEncryptString"></param>
/// <returns></returns>
public string RSAEncrypt_String(string stringPublicKey, string m_strEncryptString)
{
byte[] PlainTextBArray;
byte[] CypherTextBArray;
string Result;
RSACryptoServiceProvider rsa = new RSACryptoServiceProvider();
rsa.ImportCspBlob(Convert.FromBase64String(stringPublicKey));
PlainTextBArray = Encoding.UTF8.GetBytes(m_strEncryptString);
CypherTextBArray = rsa.Encrypt(PlainTextBArray, false);
Result = Convert.ToBase64String(CypherTextBArray);
return Result;
}
/// <summary>
/// RSA的解密函数 String
/// </summary>
/// <param name="stringPrivateKey">base64 string</param>
/// <param name="m_strDecryptString">待解密</param>
/// <returns></returns>
public string RSADecrypt_String(string stringPrivateKey, string m_strDecryptString)
{
byte[] PlainTextBArray;
byte[] DypherTextBArray;
string Result;
System.Security.Cryptography.RSACryptoServiceProvider rsa = new RSACryptoServiceProvider();
rsa.ImportCspBlob(Convert.FromBase64String(stringPrivateKey));
PlainTextBArray = Convert.FromBase64String(m_strDecryptString);
DypherTextBArray = rsa.Decrypt(PlainTextBArray, false);
Result = Encoding.UTF8.GetString(DypherTextBArray);
return Result;
}