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

            
    加密
    public static string Encrypt(string sourceString, string key, string iv)
            {
                try
                {
                    byte[] btKey = Encoding.UTF8.GetBytes(key);
    
                    byte[] btIV = Encoding.UTF8.GetBytes(iv);
    
                    DESCryptoServiceProvider des = new DESCryptoServiceProvider();
    
                    using (MemoryStream ms = new MemoryStream())
                    {
                        byte[] inData = Encoding.UTF8.GetBytes(sourceString);
                        try
                        {
                            using (CryptoStream cs = new CryptoStream(ms, des.CreateEncryptor(btKey, btIV), CryptoStreamMode.Write))
                            {
                                cs.Write(inData, 0, inData.Length);
    
                                cs.FlushFinalBlock();
                            }
    
                            return Convert.ToBase64String(ms.ToArray());
                        }
                        catch
                        {
                            return sourceString;
                        }
                    }
                }
                catch { }
    
                return "DES加密出错";
            }
    调用:
                string recordString = Encrypt("金胖子死了", "20111219", "12345678");
    结果:recordString= "xQ969nexy964SXhkTuekUQ=="
    

      解密

            public static string Decrypt(string encryptedString, string key, string iv)
            {
                byte[] btKey = Encoding.UTF8.GetBytes(key);
    
                byte[] btIV = Encoding.UTF8.GetBytes(iv);
    
                DESCryptoServiceProvider des = new DESCryptoServiceProvider();
    
                using (MemoryStream ms = new MemoryStream())
                {
                    byte[] inData = Convert.FromBase64String(encryptedString);
                    try
                    {
                        using (CryptoStream cs = new CryptoStream(ms, des.CreateDecryptor(btKey, btIV), CryptoStreamMode.Write))
                        {
                            cs.Write(inData, 0, inData.Length);
    
                            cs.FlushFinalBlock();
                        }
    
                        return Encoding.UTF8.GetString(ms.ToArray());
                    }
                    catch
                    {
                        return encryptedString;
                    }
                }
            }
    调用:string recordString = DESOperation.Decrypt("xQ969nexy964SXhkTuekUQ==", "20111219", "12345678");
    结果:recordString = “金胖子死了”;
    

      

  • 相关阅读:
    我的航拍直升机 控制基站软件的编写历程(2.2)——Qt Creator 版本控制系统
    windows下QT开发环境建立方法
    QT 4.5 windows版本 安装问题 及 Junction 使用
    各种平台下编译qt工程
    华为面试题
    strcpy,strncpy,strlcpy,memcpy
    QT/E 更换字体问题
    Linux设备驱动编程中断处理
    oracle数据库连接池的使用
    Windows下QT的安装
  • 原文地址:https://www.cnblogs.com/cfas/p/3174747.html
Copyright © 2011-2022 走看看