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

    using System;
    using System.Collections.Generic;
    using System.IO;
    using System.Linq;
    using System.Security.Cryptography;
    using System.Text;
    
    namespace ConsoleApp1
    {
        public class EncryptUtil
        {
            /// <summary>
            /// MD5加密码字符串
            /// </summary>
            /// <param name="sInputString">消息体</param>
            /// <returns>MD5签名字符</returns>
            public static string MD5Encrypt(string sInputString)
            {
                System.Security.Cryptography.MD5 md5 = System.Security.Cryptography.MD5.Create();
                string encoded = BitConverter.ToString(md5.ComputeHash(Encoding.UTF8.GetBytes(sInputString))).Replace("-", "");
                return encoded;
            }
    
            /// <summary>
            /// DES加密
            /// </summary>
            /// <param name="sInputString">加密后的消息体</param>
            /// <param name="sKey">24位的密钥</param>
            /// <returns>解密后的消息体</returns>
            public static string DESEncryptBase64(string sInputString, string sKey)
            {
                if (string.IsNullOrEmpty(sInputString) || string.IsNullOrEmpty(sKey) || sKey.Length != 24)
                {
                    return string.Empty;
                }
    
                DESCryptoServiceProvider des = new DESCryptoServiceProvider();
                des.Mode = CipherMode.ECB;
                des.Padding = PaddingMode.PKCS7;
                string key = sKey.Substring(0, 12);
                string iv = sKey.Remove(0, 12);
                byte[] byKey = Convert.FromBase64String(key);
                byte[] byIV = Convert.FromBase64String(iv);
                byte[] inputByteArray = Encoding.UTF8.GetBytes(sInputString);
    
                MemoryStream ms = new MemoryStream();
                CryptoStream cs = new CryptoStream(ms, des.CreateEncryptor(byKey, byIV), CryptoStreamMode.Write);
                cs.Write(inputByteArray, 0, inputByteArray.Length);
                cs.FlushFinalBlock();
    
                return Convert.ToBase64String(ms.ToArray());
            }
    
            /// <summary>
            /// DES解密
            /// </summary>
            /// <param name="sInputString">待加密消息体</param>
            /// <param name="sKey">24位的密钥</param>
            /// <returns>加密后的消息体</returns>
            public static string DESDecryptBase64(string sInputString, string sKey)
            {
                if (string.IsNullOrEmpty(sInputString) || string.IsNullOrEmpty(sKey) || sKey.Length != 24)
                {
                    return string.Empty;
                }
    
                DESCryptoServiceProvider des = new DESCryptoServiceProvider();
                des.Mode = CipherMode.ECB;
                des.Padding = PaddingMode.PKCS7;
    
                string key = sKey.Substring(0, 12);
                string iv = sKey.Remove(0, 12);
                byte[] byKey = Convert.FromBase64String(key);
                byte[] byIV = Convert.FromBase64String(iv);
                byte[] inputByteArray = Convert.FromBase64String(sInputString);
    
                MemoryStream ms = new MemoryStream();
                CryptoStream cs = new CryptoStream(ms, des.CreateDecryptor(byKey, byIV), CryptoStreamMode.Write);
    
                cs.Write(inputByteArray, 0, inputByteArray.Length);
                cs.FlushFinalBlock();
    
                Encoding encoding = new UTF8Encoding();
                return encoding.GetString(ms.ToArray());
            }
    
        }
    
    }
    

      

  • 相关阅读:
    hdu 4710 Balls Rearrangement()
    hdu 4707 Pet(DFS水过)
    hdu 4706 Children's Day(模拟)
    hdu 4712 Hamming Distance(随机函数暴力)
    csu 1305 Substring (后缀数组)
    csu 1306 Manor(优先队列)
    csu 1312 榜单(模拟题)
    csu 1303 Decimal (数论题)
    网络爬虫
    Python处理微信利器——itchat
  • 原文地址:https://www.cnblogs.com/sanday/p/7873665.html
Copyright © 2011-2022 走看看