private RSACryptoServiceProvider rsa;
public string Encrypt(string cardInfo)//cardInfo是我传进去的string
{
try
{
rsa = new RSACryptoServiceProvider(2048);
//rsa.FromXmlString(PublicKey);
MemoryStream ms = new MemoryStream();
MemoryStream ms1 = new MemoryStream();
byte[] dataToEncrypt = Encoding.Unicode.GetBytes(cardInfo);
ms.Write(dataToEncrypt, 0, dataToEncrypt.Length); byte[] bin = new byte[100];
long rdlen = 0;
long totlen = ms.Length;
int len; while (rdlen < totlen)
{
len = ms.Read(bin, 0, 100);//可是我的len返回的数据都是0
byte[] bout = rsa.Encrypt(bin, false);
ms1.Write(bout, 0, bout.Length);
rdlen = rdlen + len;
}
byte[] rsaBuffer = new byte[ms1.Length];
ms1.Read(rsaBuffer, 0, rsaBuffer.Length);
ms.Close();
ms1.Close();
string rsastr = Convert.ToBase64String(rsaBuffer);
return rsastr;
}
catch (Exception ex)
{
throw new Exception( ex.Message);
} }
各位高手帮忙改改这个RSA加密算法~、
高手支招~
public string Encrypt(string cardInfo)//cardInfo是我传进去的string
{
try
{
rsa = new RSACryptoServiceProvider(2048);
//rsa.FromXmlString(PublicKey);
MemoryStream ms = new MemoryStream();
MemoryStream ms1 = new MemoryStream();
byte[] dataToEncrypt = Encoding.Unicode.GetBytes(cardInfo);
ms.Write(dataToEncrypt, 0, dataToEncrypt.Length); byte[] bin = new byte[100];
long rdlen = 0;
long totlen = ms.Length;
int len; while (rdlen < totlen)
{
len = ms.Read(bin, 0, 100);//可是我的len返回的数据都是0
byte[] bout = rsa.Encrypt(bin, false);
ms1.Write(bout, 0, bout.Length);
rdlen = rdlen + len;
}
byte[] rsaBuffer = new byte[ms1.Length];
ms1.Read(rsaBuffer, 0, rsaBuffer.Length);
ms.Close();
ms1.Close();
string rsastr = Convert.ToBase64String(rsaBuffer);
return rsastr;
}
catch (Exception ex)
{
throw new Exception( ex.Message);
} }
各位高手帮忙改改这个RSA加密算法~、
高手支招~
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货