搜尽百度,雅虎都没找到答案的小问题!
在ASP。NET中使用RSA加密数据,在本机上测试一切正常。但放在服务器上报错:
未能获取此实现的 CryptoAPI 加密服务提供程序(CSP)”
在网上搜了下是知道了原因是权限的问题。(http://dev.csdn.net/article/55/55051.shtm有详细说明),但给出的解决方案是微软的http://support.microsoft.com/default.aspx?scid=kb;en-us;322371不过小弟E文太菜没看得太懂,基本上网上就全是这个答案,也没什么具体点的。请教各位!
问题点数:20、回复次数:8Top
1 楼lshlfyf()回复于 2006-06-03 10:25:49 得分 0
怎么不去google找找呢?Top
2 楼netzb()回复于 2006-06-03 10:34:06 得分 0
搜到的东西基本都一样,就是没个稍微详细的说法Top
3 楼netzb()回复于 2006-06-03 10:40:40 得分 0
private string RSAEncrypt ( string bb )//加密
{
RSACryptoServiceProvider rsa = new RSACryptoServiceProvider();
StreamReader reader1=new StreamReader(“这里是存放公钥的文件路径” );//公钥
string PKeyXml=reader1.ReadToEnd();
rsa.FromXmlString(PKeyXml);//公钥
byte[] PlainTextbArray = (new UnicodeEncoding()).GetBytes(bb);
byte[] CypherTextbArray = rsa.Encrypt(PlainTextbArray, false); //调用加密算法
string JMdata=Convert.ToBase64String(CypherTextbArray);
return JMdata;
}
private string RSADecrypt(string b)//解密
{
byte[] PlainTextbArray;
byte[] DypherTextbArray;
string Result;
System.Security.Cryptography.RSACryptoServiceProvider rsa=new RSACryptoServiceProvider();
StreamReader reader=new StreamReader( (“这里是存放私钥的文件”);//私钥
string PPKey=reader.ReadToEnd();
rsa.FromXmlString(PPKey);
PlainTextbArray =Convert.FromBase64String(b);
DypherTextbArray=rsa.Decrypt(PlainTextbArray, false);
Result=(new UnicodeEncoding()).GetString(DypherTextbArray);
return Result;
}
private void Button1_Click(object sender, System.EventArgs e)
//生成公钥和私钥
{
RSACryptoServiceProvider rsa = new RSACryptoServiceProvider();
rsaParamsExcludePrivate=rsa.ExportParameters(false);//公
rsaParamsIncludePrivate=rsa.ExportParameters(true);
StreamWriter writer=new StreamWriter( (“这里是存放私钥的文件” );
string PPKeyXml=rsa.ToXmlString(true);//写入私钥
writer.Write(PPKeyXml);
writer.Close();
writer=new StreamWriter( (“这里是存放公钥的文件” );
string PKeyXml=rsa.ToXmlString(false);//写入写入公钥
writer.Write(PKeyXml);
writer.Close();
}
Top
4 楼netzb()回复于 2006-06-03 11:32:21 得分 0
还是解决了。贴给大家参考一下:
RSACryptoServiceProvider rsa = new RSACryptoServiceProvider();
凡是这一句通通改成
CspParameters CSPParam = new CspParameters();
CSPParam.Flags = CspProviderFlags.UseMachineKeyStore;
RSACryptoServiceProvider rsa = new RSACryptoServiceProvider(CSPParam);Top
5 楼iceblue2005gather(美丽心情)回复于 2006-06-03 11:38:33 得分 5
mark 搂主品格,高风亮节Top
6 楼iceblue2005gather(美丽心情)回复于 2006-06-03 11:44:03 得分 0
mark 搂主品格,高风亮节Top
7 楼lazyfish(呆呆虫)回复于 2006-06-03 12:00:28 得分 15
楼主不错。Top
8 楼chinawn(动性忍心)回复于 2006-06-03 12:19:33 得分 0
mark 搂主品格,高风亮节Top




