这篇文章主要介绍了C#中RSA加密与解密的实例代码,代码简单易懂,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
1. RSA加密与解密 -- 使用公钥加密、私钥解密
public class RSATool
{
public string Encrypt(string strText, string strPublicKey)
{
RSACryptoServiceProvider rsa = new RSACryptoServiceProvider();
rsa.FromXmlString(strPublicKey);
byte[] byteText = Encoding.UTF8.GetBytes(strText);
byte[] byteEntry = rsa.Encrypt(byteText, false);
return Convert.ToBase64String(byteEntry);
}
public string Decrypt(string strEntryText,string strPrivateKey)
{
RSACryptoServiceProvider rsa = new RSACryptoServiceProvider();
rsa.FromXmlString(strPrivateKey);
byte[] byteEntry = Convert.FromBase64String(strEntryText);
byte[] byteText = rsa.Decrypt(byteEntry, false);
return Encoding.UTF8.GetString(byteText);
}
public Dictionary<string,string> GetKey()
{
Dictionary<string, string> dictKey = new Dictionary<string, string>();
RSACryptoServiceProvider rsa = new RSACryptoServiceProvider();
dictKey.Add("PublicKey", rsa.ToXmlString(false));
dictKey.Add("PrivateKey", rsa.ToXmlString(true));
return dictKey;
}
}
测试:
RSATool myRSA = new RSATool();
Dictionary<string, string> dictK = new Dictionary<string, string>();
dictK = myRSA.GetKey();
string strText = "123456";
Console.WriteLine("要加密的字符串是:{0}", strText);
string str1 = myRSA.Encrypt("123456", dictK["PublicKey"]);
Console.WriteLine("加密后的字符串:{0}", str1);
string str2 = myRSA.Decrypt(str1, dictK["PrivateKey"]);
Console.WriteLine("解密后的字符串:{0}", str2);
2. RSA加密与解密 -- 使用同一个密钥容器进行加密与解密
public class RSAToolX
{
public string Encrypt(string strText)
{
CspParameters CSApars = new CspParameters();
CSApars.KeyContainerName = "Test001";
RSACryptoServiceProvider rsa = new RSACryptoServiceProvider(CSApars);
byte[] byteText = Encoding.UTF8.GetBytes(strText);
byte[] byteEntry = rsa.Encrypt(byteText, false);
return Convert.ToBase64String(byteEntry);
}
public string Decrypt(string strEntryText)
{
CspParameters CSApars = new CspParameters();
CSApars.KeyContainerName = "Test001";
RSACryptoServiceProvider rsa = new RSACryptoServiceProvider(CSApars);
byte[] byteEntry = Convert.FromBase64String(strEntryText);
byte[] byteText = rsa.Decrypt(byteEntry, false);
return Encoding.UTF8.GetString(byteText);
}
}
测试 :
RSAToolX myRSA = new RSAToolX();
string strText = "123456";
Console.WriteLine("要加密的字符串是:{0}", strText);
string str1 = myRSA.Encrypt("123456");
Console.WriteLine("加密后的字符串:{0}", str1);
string str2 = myRSA.Decrypt(str1);
Console.WriteLine("解密后的字符串:{0}", str2);
总结
以上所述是小编给大家介绍的C#中RSA加密与解密的实例详解,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的!
沃梦达教程
本文标题为:C#中RSA加密与解密的实例详解
基础教程推荐
猜你喜欢
- 一个读写csv文件的C#类 2022-11-06
- unity实现动态排行榜 2023-04-27
- ZooKeeper的安装及部署教程 2023-01-22
- linux – 如何在Debian Jessie中安装dotnet core sdk 2023-09-26
- C#控制台实现飞行棋小游戏 2023-04-22
- C# List实现行转列的通用方案 2022-11-02
- C# windows语音识别与朗读实例 2023-04-27
- C#类和结构详解 2023-05-30
- C# 调用WebService的方法 2023-03-09
- winform把Office转成PDF文件 2023-06-14