C# DES 加解密
标签:namespace eal windows ace try except span mst deb
using System;
using System.Text;
using System.Security.Cryptography;
using System.Diagnostics;
using System.IO;
using System.Reflection;
using System.Windows.Forms;
namespace FirstEliteCSFileEncoder
{
class Program
{
///
/// DESEncrypt加密解密算法。
///
public class DESEncoder
{
public DESEncoder(string key)
{
this.Key = key;
}
///
/// 对称加密解密的密钥
///
public string Key { get; private set; }
///
/// DES加密
///
///
///
public string EncryptString(string encryptString)
{
byte[] keyBytes = Encoding.UTF8.GetBytes(this.Key.Substring(0, 8));
byte[] keyIV = keyBytes;
byte[] inputByteArray = Encoding.UTF8.GetBytes(encryptString);
DESCryptoServiceProvider provider = new DESCryptoServiceProvider();
MemoryStream mStream = new MemoryStream();
CryptoStream cStream = new CryptoStream(mStream, provider.CreateEncryptor(keyBytes, keyIV), CryptoStreamMode.Write);
cStream.Write(inputByteArray, 0, inputByteArray.Length);
cStream.FlushFinalBlock();
return Convert.ToBase64String(mStream.ToArray());
}
///
/// DES解密
///
///
///
public string DecryptString(string decryptString)
{
byte[] keyBytes = Encoding.UTF8.GetBytes(this.Key.Substring(0, 8));
byte[] keyIV = keyBytes;
byte[] inputByteArray = Convert.FromBase64String(decryptString);
DESCryptoServiceProvider provider = new DESCryptoServiceProvider();
MemoryStream mStream = new MemoryStream();
CryptoStream cStream = new CryptoStream(mStream, provider.CreateDecryptor(keyBytes, keyIV), CryptoStreamMode.Write);
cStream.Write(inputByteArray, 0, inputByteArray.Length);
cStream.FlushFinalBlock();
return Encoding.UTF8.GetString(mStream.ToArray());
}
public bool EncryptFile(string filepath)
{
try
{
var bytes = File.ReadAllBytes(filepath);
File.WriteAllBytes(filepath, Encoding.UTF8.GetBytes(this.EncryptString(Convert.ToBase64String(bytes))));
return true;
}
catch (Exception ex)
{
Debug.Print(ex.ToString());
return false;
}
}
public bool DecryptFile(string filepath)
{
try
{
var bytes = File.ReadAllBytes(filepath);
File.WriteAllBytes(filepath, Convert.FromBase64String(this.DecryptString(Encoding.UTF8.GetString(bytes))));
return true;
}
catch (Exception ex)
{
Debug.Print(ex.ToString());
return false;
}
}
}
public static bool LoadAssembly(string filepath)
{
try
{
var encoder = new DESEncoder("$u&CIbzz");
var bytes = File.ReadAllBytes(filepath);
var assembly = Assembly.Load(Convert.FromBase64String(encoder.DecryptString(Encoding.UTF8.GetString(bytes))));
MessageBox.Show(assembly.FullName);
return true;
}
catch (Exception ex)
{
Debug.Print(ex.ToString());
return false;
}
}
static void Main(string[] args)
{
LoadAssembly(@"");
var encoder = new DESEncoder("$u&CIbzz");
encoder.EncryptFile(@"C:\Users\knife\Desktop\翻译.txt");
encoder.DecryptFile(@"C:\Users\knife\Desktop\翻译.txt");
Console.WriteLine("over");
Console.ReadLine();
}
}
}
C# DES 加解密
标签:namespace eal windows ace try except span mst deb
原文地址:https://www.cnblogs.com/nanfei/p/11077580.html
文章来自:
搜素材网的
编程语言模块,转载请注明文章出处。
文章标题:
C# DES 加解密
文章链接:http://soscw.com/index.php/essay/89222.html
评论