zoukankan      html  css  js  c++  java
  • C# DES 加解密

    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
        {
            /// <summary>
            /// DESEncrypt加密解密算法。
            /// </summary>
            public class DESEncoder
            {
                public DESEncoder(string key)
                {
                    this.Key = key;
                }
    
                /// <summary>
                /// 对称加密解密的密钥
                /// </summary>
                public string Key { get; private set; }
    
                /// <summary>
                /// DES加密
                /// </summary>
                /// <param name="encryptString"></param>
                /// <returns></returns>
                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());
                }
    
                /// <summary>
                /// DES解密
                /// </summary>
                /// <param name="decryptString"></param>
                /// <returns></returns>
                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:UsersknifeDesktop翻译.txt");
                encoder.DecryptFile(@"C:UsersknifeDesktop翻译.txt");
                Console.WriteLine("over");
                Console.ReadLine();
            }
    
            
        }
    }
  • 相关阅读:
    Spring Boot (20) 拦截器
    Spring Boot (19) servlet、filter、listener
    Spring Boot (18) @Async异步
    Spring Boot (17) 发送邮件
    Spring Boot (16) logback和access日志
    Spring Boot (15) pom.xml设置
    Spring Boot (14) 数据源配置原理
    Spring Boot (13) druid监控
    Spring boot (12) tomcat jdbc连接池
    Spring Boot (11) mybatis 关联映射
  • 原文地址:https://www.cnblogs.com/nanfei/p/11077580.html
Copyright © 2011-2022 走看看