⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 decryptor.cs

📁 AJAX开发工具包
💻 CS
字号:
using System;
using System.IO;
using System.Security.Cryptography;

namespace AjaxPro.Cryptography
{
	/// <summary>
	/// General class for decryption.
	/// </summary>
	public class Decryptor
	{
		private DecryptTransformer transformer;
		private byte[] initVec;

		/// <summary>
		/// 
		/// </summary>
		/// <param name="algId">The algorithm to decrypt data.</param>
		public Decryptor(EncryptionAlgorithm algId)
		{
			transformer = new DecryptTransformer(algId);
		}

		/// <summary>
		/// 
		/// </summary>
		/// <param name="bytesData"></param>
		/// <param name="bytesKey"></param>
		/// <returns></returns>
		public byte[] Decrypt(byte[] bytesData, byte[] bytesKey)
		{
			MemoryStream memStreamDecryptedData = new MemoryStream();

			transformer.IV = initVec;

			ICryptoTransform transform = transformer.GetCryptoServiceProvider(bytesKey);
			CryptoStream decStream = new CryptoStream(memStreamDecryptedData, transform, CryptoStreamMode.Write);

			try
			{
				decStream.Write(bytesData, 0, bytesData.Length);
			}
			catch(Exception ex)
			{
				throw new Exception("Error while writing encrypted data to the stream: \n" + ex.Message);
			}

			decStream.FlushFinalBlock();
			decStream.Close();

			return memStreamDecryptedData.ToArray();
		}

		/// <summary>
		/// 
		/// </summary>
		public byte[] IV
		{
			set
			{
				initVec = value;
			}
		}
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -