MD5/Base64/DES是常用来对用户身份验证的算法,本人陆续公开了自己常用的这三种算法的源代码,不足之处,希望大家批评指正。
 
using System;
using System.Security.Cryptography;
using System.Text;
using System.IO;

namespace Common
...{
        /**//// <summary>
        /// DESEncrypt加密解密算法。
        /// </summary>
        public sealed class DESEncrypt
        ...{
                private DESEncrypt()
                ...{
                        //
                        // TODO: 在此处添加构造函数逻辑
                        //
                }

                private static string key = "zhoufoxcn";

                /**//// <summary>
                /// 对称加密解密的密钥
                /// </summary>
                public static string Key
                ...{
                        get
                        ...{
                                return key;
                        }
                        set
                        ...{
                                key = value;
                        }
                }

                /**//// <summary>
                /// DES加密
                /// </summary>
                /// <param name="encryptString"></param>
                /// <returns></returns>
                public static string DesEncrypt(string encryptString)
                ...{
                        byte[] keyBytes = Encoding.UTF8.GetBytes(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 static string DesDecrypt(string decryptString)
                ...{
                        byte[] keyBytes = Encoding.UTF8.GetBytes(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());
                }
        }
}