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

📄 des.cs

📁 加密解密 c# 加密解密 加密解密 加密解密
💻 CS
字号:
using System;
using System.Security.Cryptography;
using System.Text;
using System.IO;

namespace TMap
{
	/// <summary>
	/// Des 的摘要说明。
	/// </summary>

	public class Des
	{
		/// 加密。注意:sKey输入密码的时候,必须使用英文字符,区分大小写,且字符数量是8个,不能多也不能少,否则出错。
		public static string Encrypt(string pToEncrypt, string sKey)
		{
			DESCryptoServiceProvider des = new DESCryptoServiceProvider(); 
			byte[] inputByteArray = Encoding.Default.GetBytes(pToEncrypt); 

			//建立加密对象的密钥和偏移量 
			des.Key = ASCIIEncoding.ASCII.GetBytes(sKey); 
			des.IV = ASCIIEncoding.ASCII.GetBytes(sKey); 
			MemoryStream ms = new MemoryStream(); 
			CryptoStream cs = new CryptoStream(ms, des.CreateEncryptor(),CryptoStreamMode.Write); 

			//Write the byte array into the crypto stream 
			cs.Write(inputByteArray, 0, inputByteArray.Length); 
			cs.FlushFinalBlock(); 
			//Get the data back from the memory stream, and into a string 
			StringBuilder ret = new StringBuilder(); 
			foreach(byte b in ms.ToArray()) 
			{ 
				//Format as hex 
				ret.AppendFormat("{0:X2}", b); 
			} 
			return ret.ToString(); 
		}

		/// 解密
		public static string Decrypt(string pToDecrypt, string sKey)
		{
			DESCryptoServiceProvider des = new DESCryptoServiceProvider(); 

			//Put the input string into the byte array 
			byte[] inputByteArray = new byte[pToDecrypt.Length / 2]; 
			for(int x = 0; x < pToDecrypt.Length / 2; x++) 
			{ 
				int i = (Convert.ToInt32(pToDecrypt.Substring(x * 2, 2), 16)); 
				inputByteArray[x] = (byte)i; 
			} 

			//建立加密对象的密钥和偏移量,此值重要,不能修改 
			des.Key = ASCIIEncoding.ASCII.GetBytes(sKey); 
			des.IV = ASCIIEncoding.ASCII.GetBytes(sKey); 
			MemoryStream ms = new MemoryStream(); 
			CryptoStream cs = new CryptoStream(ms, des.CreateDecryptor(),CryptoStreamMode.Write); 
			//Flush the data through the crypto stream into the memory stream 
			cs.Write(inputByteArray, 0, inputByteArray.Length); 
			cs.FlushFinalBlock(); 

			//Get the decrypted data back from the memory stream 
			//建立StringBuild对象,CreateDecrypt使用的是流对象,必须把解密后的文本变成流对象 
			StringBuilder ret = new StringBuilder(); 

			return System.Text.Encoding.Default.GetString(ms.ToArray()); 
		}

	}
	
}

⌨️ 快捷键说明

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