C# RSA加密解密

RSA加密算法是一种非对称加密算法。在公开密钥加密和电子商业中RSA被广泛使用。RSA是1977年由罗纳德·李维斯特(Ron Rivest)、阿迪·萨莫尔(Adi Shamir)和伦纳德·阿德曼(Leonard Adleman)一起提出的。当时他们三人都在麻省理工学院工作。RSA就是他们三人姓氏开头字母拼在一起组成的。
C#使用RSA加密算法重要的一个类就是RSACryptoServiceProvider,这个类可以生成一对公钥和私钥,同时也可以加密和解密。

生成公钥和私钥的代码如下:

/// <summary>
/// 生成一对公钥和私钥
/// </summary>
/// <returns></returns>
public KeyValuePair<string, string> GetKeyPair1()
{
    RSACryptoServiceProvider RSA = new RSACryptoServiceProvider();
    string public_Key = Convert.ToBase64String(RSA.ExportCspBlob(false));
    string private_Key = Convert.ToBase64String(RSA.ExportCspBlob(true));
    return new KeyValuePair<string, string>(public_Key, private_Key);
}
/// <summary>
/// 生成一对公钥和私钥
/// </summary>
/// <returns></returns>
public KeyValuePair<string, string> GetKeyPair2()
{
    RSACryptoServiceProvider RSA = new RSACryptoServiceProvider();
    string public_Key = RSA.ToXmlString(false);
    string private_Key = RSA.ToXmlString(true);
    return new KeyValuePair<string, string>(public_Key, private_Key);
}

加密方法,加密方法RSA.Encrypt,解密方法RSA.Decrypt。这个不用多说,关键是导入私钥和公钥。

//方法1
RSACryptoServiceProvider rsa = new RSACryptoServiceProvider();
rsa.ImportCspBlob(Convert.FromBase64String(str_Public_Key));
//方法2
RSACryptoServiceProvider rsa = new RSACryptoServiceProvider();
rsa.FromXmlString(privateKey);

 


 

RSA非对称加密,支持公钥加密私钥解密,或者私钥加密公钥解密,但是C#却只实现了公钥加密私钥解密,如果我们需要实现私钥加密公钥解密,就需要使用到第三方插件,“BouncyCastle.Crypto”,具体操作方法如下:

 

原文参考了:https://www.cnblogs.com/dj258/p/6049786.html

 

转载于:https://www.cnblogs.com/duanjt/p/11061380.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值