具体见代码吧 public string RSAFileEn(Stream datastream)
{
RSACryptoServiceProvider RSA = new RSACryptoServiceProvider();
StreamReader sr = new StreamReader("C:\\RSAkey.xml");
String str = sr.ReadToEnd();
sr.Close();
RSA.FromXmlString(str);
byte[] src = new byte[64];
Stream fs = datastream;
Stream res = new MemoryStream();
int len;
//加密
while ((len = fs.Read(src, 0, 64)) > 0)
{
byte[] temp = new byte[len];
Array.Copy(src, 0, temp, 0, len);
temp = RSA.Encrypt(temp, false);
res.Write(temp, 0, temp.Length);
} long i = res.Length;
StreamReader myreader = new StreamReader(res);
string strEn = myreader.ReadToEnd();
fs.Close();
res.Close();
myreader.Close(); return strEn;
}为什么我读出来的 strEn是空?
{
RSACryptoServiceProvider RSA = new RSACryptoServiceProvider();
StreamReader sr = new StreamReader("C:\\RSAkey.xml");
String str = sr.ReadToEnd();
sr.Close();
RSA.FromXmlString(str);
byte[] src = new byte[64];
Stream fs = datastream;
Stream res = new MemoryStream();
int len;
//加密
while ((len = fs.Read(src, 0, 64)) > 0)
{
byte[] temp = new byte[len];
Array.Copy(src, 0, temp, 0, len);
temp = RSA.Encrypt(temp, false);
res.Write(temp, 0, temp.Length);
} long i = res.Length;
StreamReader myreader = new StreamReader(res);
string strEn = myreader.ReadToEnd();
fs.Close();
res.Close();
myreader.Close(); return strEn;
}为什么我读出来的 strEn是空?
参考一下吧 ,里边有从文件 读取公钥和私钥的方法
public string RSAFileEn(Stream datastream)
{
RSACryptoServiceProvider RSA = new RSACryptoServiceProvider();
StreamReader sr = new StreamReader("C:\\RSAkey.xml");
String str = sr.ReadToEnd();
sr.Close();
RSA.FromXmlString(str);
byte[] src = new byte[64];
Stream fs = datastream;
Stream res = new MemoryStream(); int len;
//加密
while ((len = fs.Read(src, 0, 64)) > 0)
{
byte[] temp = new byte[len];
Array.Copy(src, 0, temp, 0, len);
temp = RSA.Encrypt(temp, false);
res.Write(temp, 0, temp.Length);
} res.Seek(0, SeekOrigin.Begin); //加上这句...... long i = res.Length;
StreamReader myreader = new StreamReader(res);
string strEn = myreader.ReadToEnd();
fs.Close();
res.Close();
myreader.Close(); return strEn;
}
res.Seek(0, SeekOrigin.Begin); 起不要回到begin??