当前位置: 移动技术网 > IT编程>开发语言>c# > C#中RSA加密与解密的实例详解

C#中RSA加密与解密的实例详解

2019年09月09日  | 移动技术网IT编程  | 我要评论
1.  rsa加密与解密  --  使用公钥加密、私钥解密 public class rsatool { public s

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加密与解密的实例详解,希望对大家有所帮助

如您对本文有疑问或者有任何想说的,请点击进行留言回复,万千网友为您解惑!

相关文章:

验证码:
移动技术网