RSA加密解密及RSA签名和验证

这个博客介绍了如何使用C#实现RSA加密、解密以及数字签名和验证的方法。包括RSA密钥生成、字符串和字节数组的加密解密,以及基于MD5的RSA签名和验证过程。
摘要由CSDN通过智能技术生成

/// <summary> 

/// RSA加密解密及RSA签名和验证

/// </summary> 

public class RSACryption 

{

public RSACryption() 

{

 

#region RSA 加密解密 

 

#region RSA 的密钥产生 

/// <summary>

/// RSA 的密钥产生 产生私钥 和公钥 

/// </summary>

/// <param name="xmlKeys"></param>

/// <param name="xmlPublicKey"></param>

public void RSAKey(out string xmlKeys,out string xmlPublicKey) 

{

System.Security.Cryptography.RSACryptoServiceProvider rsa=new RSACryptoServiceProvider(); 

xmlKeys=rsa.ToXmlString(true); 

xmlPublicKey = rsa.ToXmlString(false);

#endregion 

 

#region RSA的加密函数 

//############################################################################## 

//RSA 方式加密 

//说明KEY必须是XML的行式,返回的是字符串 

//在有一点需要说明!!该加密方式有 长度 限制的!! 

//############################################################################## 

 

//RSA的加密函数  string

public string RSAEncrypt(string xmlPublicKey,string m_strEncryptString ) 

byte[] PlainTextBArray; 

byte[] CypherTextBArray; 

string Result; 

RSACryptoServiceProvider rsa=new RSACryptoServiceProvider(); 

rsa.FromXmlString(xmlPublicKey); 

PlainTextBArray = (new UnicodeEncoding()).GetBytes(m_strEncryptString); 

CypherTextBArray = rsa.Encrypt(PlainTextBArray, false); 

Result=Convert.ToBase64String(CypherTextBArray); 

return Result; 

//RSA的加密函数 byte[]

public string RSAEncrypt(string xmlPublicKey,byte[] EncryptString ) 

byte[] CypherTextBArray; 

string Result; 

RSACryptoServiceProvider rsa=new RSACryptoServiceProvider(); 

rsa.FromXmlString(xmlPublicKey); 

CypherTextBArray = rsa.Encrypt(EncryptString, false); 

Result=Convert.ToBase64String(CypherTextBArray); 

return Result; 

#endregion 

 

#region RSA的解密函数 

//RSA的解密函数  string

public string RSADecrypt(string xmlPrivateKey, string m_strDecryptString ) 

{

byte[] PlainTextBArray; 

byte[] DypherTextBArray; 

string Result; 

System.Security.Cryptography.RSACryptoServiceProvider rsa=new RSACr

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值