//获取公钥
public static string getPublickey() {
RSACryptoServiceProvider rsa1 = new RSACryptoServiceProvider();
return rsa1.ToXmlString(false);
}
//获取加密后的字符串
public static string getKey(string value,string publickey)
{
RSACryptoServiceProvider rsa2 = new RSACryptoServiceProvider();
//RSACryptoServiceProvider rsa1 = new RSACryptoServiceProvider();
rsa2.FromXmlString(publickey); //rsa2 导入 rsa1 的公钥,用于加密信息 //rsa2开始加密
byte[] cipherbytes;
cipherbytes = rsa2.Encrypt(
System.Text.Encoding.UTF8.GetBytes(value),
false);
string c = Convert.ToBase64String(cipherbytes);
//string d = System.Text.Encoding.UTF8.GetString(rsa2.Decrypt(Convert.FromBase64String(c), false));
return c;
}
//解密,解密这里有问题,应该是这里的rsa1不是生成公钥的那个rsa1,请问怎么将这个rsa1转变成生成公钥的那个rsa1
public static string getValue(string key,string publickey) {
if (!key.Equals(""))
{
RSACryptoServiceProvider rsa1 = new RSACryptoServiceProvider();
//RSACryptoServiceProvider rsa2 = new RSACryptoServiceProvider();
rsa1.FromXmlString(publickey);
string result = System.Text.Encoding.UTF8.GetString(rsa1.Decrypt(Convert.FromBase64String(key), false));
return result;
} return "";
}
public static string getPublickey() {
RSACryptoServiceProvider rsa1 = new RSACryptoServiceProvider();
return rsa1.ToXmlString(false);
}
//获取加密后的字符串
public static string getKey(string value,string publickey)
{
RSACryptoServiceProvider rsa2 = new RSACryptoServiceProvider();
//RSACryptoServiceProvider rsa1 = new RSACryptoServiceProvider();
rsa2.FromXmlString(publickey); //rsa2 导入 rsa1 的公钥,用于加密信息 //rsa2开始加密
byte[] cipherbytes;
cipherbytes = rsa2.Encrypt(
System.Text.Encoding.UTF8.GetBytes(value),
false);
string c = Convert.ToBase64String(cipherbytes);
//string d = System.Text.Encoding.UTF8.GetString(rsa2.Decrypt(Convert.FromBase64String(c), false));
return c;
}
//解密,解密这里有问题,应该是这里的rsa1不是生成公钥的那个rsa1,请问怎么将这个rsa1转变成生成公钥的那个rsa1
public static string getValue(string key,string publickey) {
if (!key.Equals(""))
{
RSACryptoServiceProvider rsa1 = new RSACryptoServiceProvider();
//RSACryptoServiceProvider rsa2 = new RSACryptoServiceProvider();
rsa1.FromXmlString(publickey);
string result = System.Text.Encoding.UTF8.GetString(rsa1.Decrypt(Convert.FromBase64String(key), false));
return result;
} return "";
}
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货