内容纲要
示例如下:
using Newtonsoft.Json;
void Main()
{
var keySize = 2048;
var rsaCryptoServiceProvider = new RSACryptoServiceProvider(keySize);
// 打印私钥、公钥
Convert.ToBase64String(rsaCryptoServiceProvider.ExportPkcs8PrivateKey()).Dump();
Convert.ToBase64String(rsaCryptoServiceProvider.ExportRSAPublicKey()).Dump();
var parameters = rsaCryptoServiceProvider.ExportParameters(true);
// 加密后的字符串
var cipherText = Encrypt("hello world", parameters);
// 解密后的字符串
var plainText = Decrypt(cipherText, parameters);
Console.WriteLine(plainText);
}
// 加密
public string Encrypt(string data, RSAParameters key)
{
using (var rsa = new RSACryptoServiceProvider())
{
rsa.ImportParameters(key);
var byteData = Encoding.UTF8.GetBytes(data);
var encryptData = rsa.Encrypt(byteData, false);
return Convert.ToBase64String(encryptData);
}
}
// 解密
public string Decrypt(string cipherText, RSAParameters key)
{
using (var rsa = new RSACryptoServiceProvider())
{
var cipherByteData = Convert.FromBase64String(cipherText);
rsa.ImportParameters(key);
var encryptData = rsa.Decrypt(cipherByteData, false);
return Encoding.UTF8.GetString(encryptData);
}
}
文章评论