3des 源码for c#.txt

来自「c# for 3des加密解密」· 文本 代码 · 共 93 行

TXT
93
字号
using System;
using System.Text;
using System.IO;
using System.Security.Cryptography;

class Class1
{
	static void Main()
	{
		Console.WriteLine("Encrypt String...");
		txtKey = "tkGGRmBErvc=";
		btnKeyGen();
		Console.WriteLine("Encrypt Key :{0}",txtKey);
		txtIV = "Kl7ZgtM1dvQ=";
		btnIVGen();
		Console.WriteLine("Encrypt IV :{0}",txtIV);
		Console.WriteLine();

		string txtEncrypted = EncryptString("1111");
		Console.WriteLine("Encrypt String : {0}",txtEncrypted);

		string txtOriginal = DecryptString(txtEncrypted);
		Console.WriteLine("Decrypt String : {0}",txtOriginal);
	}

	private static SymmetricAlgorithm mCSP;
	private static string txtKey;
	private static string txtIV;

	private static void btnKeyGen()
	{
		mCSP = SetEnc();

		byte[] byt2 = Convert.FromBase64String(txtKey);

		mCSP.Key = byt2;
	}

	private static void btnIVGen()
	{
		byte[] byt2 = Convert.FromBase64String(txtIV);

		mCSP.IV = byt2;
	}

	private static string EncryptString(string Value)
	{
		ICryptoTransform ct;
		MemoryStream ms;
		CryptoStream cs;
		byte[] byt;

		ct = mCSP.CreateEncryptor(mCSP.Key, mCSP.IV);

		byt = Encoding.UTF8.GetBytes(Value);

		ms = new MemoryStream();
		cs = new CryptoStream(ms, ct, CryptoStreamMode.Write);
		cs.Write(byt, 0, byt.Length);
		cs.FlushFinalBlock();
	
		cs.Close();

		return Convert.ToBase64String(ms.ToArray());
	}

	private static string DecryptString(string Value)
	{
		ICryptoTransform ct;
		MemoryStream ms;
		CryptoStream cs;
		byte[] byt;

		ct = mCSP.CreateDecryptor(mCSP.Key, mCSP.IV);

		byt = Convert.FromBase64String(Value);

		ms = new MemoryStream();
		cs = new CryptoStream(ms, ct, CryptoStreamMode.Write);
		cs.Write(byt, 0, byt.Length);
		cs.FlushFinalBlock();

		cs.Close();

		return Encoding.UTF8.GetString(ms.ToArray());
	}

	private static SymmetricAlgorithm SetEnc()
	{
		return new DESCryptoServiceProvider();
	}
}

⌨️ 快捷键说明

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