ASP.NET RSA Encrypt / Decrypt ( Symmetric Key ) 方法

 
ASP.NET RSA Encrypt / Decrypt ( Symmetric Key ) 方法
 

 
   using System;
   using System.Security.Cryptography;
   using System.Text;
 
   private void executeEncryption(String PlainText)
   {
 
      UnicodeEncoding ByteConverter = new UnicodeEncoding();
 
      String EncryptText = "";
      Byte[] SourceData = ByteConverter.GetBytes(PlainText);
      Byte[] EncryptData;
      Byte[] DecryptData;
 
      CspParameters encp = new CspParameters();
      encp.KeyContainerName = "MyKeys";
      encp.Flags = CspProviderFlags.UseMachineKeyStore;
      encp.KeyNumber = 1;
 
      RSACryptoServiceProvider rsaEnCryptoServiceProvider = new RSACryptoServiceProvider(encp);
      L1.Text += "Plain Text Data : <br />" + PlainText.ToString() + "<br />";
 
      EncryptData = RSAEncrypt(SourceData, rsaEnCryptoServiceProvider.ExportParameters(true), false);
      foreach (Byte item in EncryptData) EncryptText += item.ToString("x2").Trim();
      L1.Text += "Encryption Data : " + EncryptText + "<br />";
 
      CspParameters decp = new CspParameters();
      decp.KeyContainerName = "MyKeys";
      decp.Flags = CspProviderFlags.UseMachineKeyStore;
      decp.KeyNumber = 1;
 
      RSACryptoServiceProvider rsaDeCryptoServiceProvider = new RSACryptoServiceProvider(decp);
      DecryptData = RSADecrypt(EncryptData, rsaDeCryptoServiceProvider.ExportParameters(true), false);
      L1.Text += "Decryption Data : <br />" + ByteConverter.GetString(DecryptData);
 
   }
 
   private byte[] RSAEncrypt(byte[] DataToEncrypt, RSAParameters RSAKeyInfo, bool DoOARPPadding)
   {
      RSACryptoServiceProvider rsaCryptoServiceProvider = new RSACryptoServiceProvider();
      rsaCryptoServiceProvider.ImportParameters(RSAKeyInfo);
      return rsaCryptoServiceProvider.Encrypt(DataToEncrypt, DoOARPPadding);
   }
 
   private byte[] RSADecrypt(byte[] DataToDecrypt, RSAParameters RSAKeyInfo, bool DoOARPPadding)
   {
      RSACryptoServiceProvider rsaCryptoServiceProvider = new RSACryptoServiceProvider();
      rsaCryptoServiceProvider.ImportParameters(RSAKeyInfo);
      return rsaCryptoServiceProvider.Decrypt(DataToDecrypt, DoOARPPadding);
   }