C# 문자열 암호화 및 복호화

7926 단어 문자열
using System.Security.Cryptography;

using System.IO;

//      

        private static byte[] Keys = { 0x12, 0x34, 0x56, 0x78, 0x90, 0xAB, 0xCD, 0xEF };



        /// <summary>

        /// DES     

        /// </summary>

        /// <param name="encryptString">       </param>

        /// <param name="encryptKey">    ,   8 </param>

        /// <returns></returns>

        public static string EncryptDES(string encryptString, string encryptKey)

        {

            try

            {

                byte[] rgbKey = Encoding.UTF8.GetBytes(encryptKey.Substring(0, 8));//     

                byte[] rgbIV = Keys;

                byte[] inputByteArray = Encoding.UTF8.GetBytes(encryptString);

                DESCryptoServiceProvider dCSP = new DESCryptoServiceProvider();//         

                MemoryStream mStream = new MemoryStream();//      

                //             

                CryptoStream cStream = new CryptoStream(mStream, dCSP.CreateEncryptor(rgbKey, rgbIV), CryptoStreamMode.Write);

                cStream.Write(inputByteArray, 0, inputByteArray.Length);

                cStream.FlushFinalBlock();

                return Convert.ToBase64String(mStream.ToArray());

            }

            catch

            {

                return encryptString;

            }

        }



        /// <summary>

        /// DES     

        /// </summary>

        /// <param name="decryptString">       </param>

        /// <param name="decryptKey">    ,   8 ,       </param>

        /// <returns></returns>

        public static string DecryptDES(string decryptString, string decryptKey)

        {

            try

            {

                byte[] rgbKey = Encoding.UTF8.GetBytes(decryptKey);

                byte[] rgbIV = Keys;

                byte[] inputByteArray = Convert.FromBase64String(decryptString);

                DESCryptoServiceProvider DCSP = new DESCryptoServiceProvider();

                MemoryStream mStream = new MemoryStream();

                CryptoStream cStream = new CryptoStream(mStream, DCSP.CreateDecryptor(rgbKey, rgbIV), CryptoStreamMode.Write);

                cStream.Write(inputByteArray, 0, inputByteArray.Length);

                cStream.FlushFinalBlock();

                return Encoding.UTF8.GetString(mStream.ToArray());

            }

            catch

            {

                return decryptString;

            }

        }







            string EncryptStr = EncryptDESString.EncryptDES("aaaaaaaaaa", "ssssssss");  //         

            string DecryptStr = EncryptDESString.DecryptDES(EncryptStr, "ssssssss");//     

주소: http://www.cnblogs.com/wuhuisheng/archive/2012/08/20/2647202.html

좋은 웹페이지 즐겨찾기