public string Encryption(string strKey)
{
CspParameters param = new CspParameters();
param.KeyContainerName = "Rich_CRM";//密匙容器的名称,保持加密解密一致才能解密成功
using (RSACryptoServiceProvider rsa = new RSACryptoServiceProvider(param))
{
byte[] plaindata = Encoding.Default.GetBytes(strKey);//将要加密的字符串转换为字节数组
byte[] encryptdata = rsa.Encrypt(plaindata, false);//将加密后的字节数据转换为新的加密字节数组
return Convert.ToBase64String(encryptdata);//将加密后的字节数组转换为字符串
}
}
//解密
public string Decrypt(string ciphertext)
{
CspParameters param = new CspParameters();
param.KeyContainerName = "Rich_CRM";
using (RSACryptoServiceProvider rsa = new RSACryptoServiceProvider(param))
{
byte[] encryptdata = Convert.FromBase64String(ciphertext);
byte[] decryptdata = rsa.Decrypt(encryptdata, true);
return Encoding.Default.GetString(decryptdata);
}
}
同样的代码,用winform测试都是可以的,但是写webservice的时候,解密执行到byte[] decryptdata = rsa.Decrypt(encryptdata, true);会有问题,没有报错,直接跳出去了,这是为什么?求大神指点