1. rsa加密与解密 -- 使用公钥加密、私钥解密
public class rsatool
{
public string encrypt(string strtext, string strpublickey)
{
rsacryptoserviceprovider rsa = new rsacryptoserviceprovider();
rsa.fromxmlstring(strpublickey);
byte[] bytetext = encoding.utf8.getbytes(strtext);
byte[] byteentry = rsa.encrypt(bytetext, false);
return convert.tobase64string(byteentry);
}
public string decrypt(string strentrytext,string strprivatekey)
{
rsacryptoserviceprovider rsa = new rsacryptoserviceprovider();
rsa.fromxmlstring(strprivatekey);
byte[] byteentry = convert.frombase64string(strentrytext);
byte[] bytetext = rsa.decrypt(byteentry, false);
return encoding.utf8.getstring(bytetext);
}
public dictionary<string,string> getkey()
{
dictionary<string, string> dictkey = new dictionary<string, string>();
rsacryptoserviceprovider rsa = new rsacryptoserviceprovider();
dictkey.add("publickey", rsa.toxmlstring(false));
dictkey.add("privatekey", rsa.toxmlstring(true));
return dictkey;
}
}
测试:
rsatool myrsa = new rsatool();
dictionary<string, string> dictk = new dictionary<string, string>();
dictk = myrsa.getkey();
string strtext = "123456";
console.writeline("要加密的字符串是:{0}", strtext);
string str1 = myrsa.encrypt("123456", dictk["publickey"]);
console.writeline("加密后的字符串:{0}", str1);
string str2 = myrsa.decrypt(str1, dictk["privatekey"]);
console.writeline("解密后的字符串:{0}", str2);

2. rsa加密与解密 -- 使用同一个密钥容器进行加密与解密
public class rsatoolx
{
public string encrypt(string strtext)
{
cspparameters csapars = new cspparameters();
csapars.keycontainername = "test001";
rsacryptoserviceprovider rsa = new rsacryptoserviceprovider(csapars);
byte[] bytetext = encoding.utf8.getbytes(strtext);
byte[] byteentry = rsa.encrypt(bytetext, false);
return convert.tobase64string(byteentry);
}
public string decrypt(string strentrytext)
{
cspparameters csapars = new cspparameters();
csapars.keycontainername = "test001";
rsacryptoserviceprovider rsa = new rsacryptoserviceprovider(csapars);
byte[] byteentry = convert.frombase64string(strentrytext);
byte[] bytetext = rsa.decrypt(byteentry, false);
return encoding.utf8.getstring(bytetext);
}
}
测试 :
rsatoolx myrsa = new rsatoolx();
string strtext = "123456";
console.writeline("要加密的字符串是:{0}", strtext);
string str1 = myrsa.encrypt("123456");
console.writeline("加密后的字符串:{0}", str1);
string str2 = myrsa.decrypt(str1);
console.writeline("解密后的字符串:{0}", str2);

总结
以上所述是小编给大家介绍的c#中rsa加密与解密的实例详解,希望对大家有所帮助
妹子有男友否