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); } |