最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C#的3DES加密解密算法實(shí)例代碼

 更新時(shí)間:2013年11月26日 14:45:10   作者:  
這篇文章主要介紹了C#的3DES加密解密算法實(shí)例代碼,有需要的朋友可以參考一下

C#類如下:

復(fù)制代碼 代碼如下:

using System;
using System.Collections.Generic;
using System.Text;
using System.Security.Cryptography;
using System.IO;

namespace ConsoleApplication1
{
    /// <summary>
    /// 加解密類
    /// </summary>
    public class EncryptHelper
    {
       

        //構(gòu)造一個(gè)對(duì)稱算法
        private SymmetricAlgorithm mCSP = new TripleDESCryptoServiceProvider();

        #region 加密解密函數(shù)

        /// <summary>
        /// 字符串的加密
        /// </summary>
        /// <param name="Value">要加密的字符串</param>
        /// <param name="sKey">密鑰,必須32位</param>
        /// <param name="sIV">向量,必須是12個(gè)字符</param>
        /// <returns>加密后的字符串</returns>
        public string EncryptString(string Value, string sKey,string sIV)
        {
            try
            {
                ICryptoTransform ct;
                MemoryStream ms;
                CryptoStream cs;
                byte[] byt;
                mCSP.Key = Convert.FromBase64String(sKey);
                mCSP.IV = Convert.FromBase64String(sIV);
                //指定加密的運(yùn)算模式
                mCSP.Mode = System.Security.Cryptography.CipherMode.ECB;
                //獲取或設(shè)置加密算法的填充模式
                mCSP.Padding = System.Security.Cryptography.PaddingMode.PKCS7;
                ct = mCSP.CreateEncryptor(mCSP.Key, mCSP.IV);//創(chuàng)建加密對(duì)象
                byt = Encoding.UTF8.GetBytes(Value);
                ms = new MemoryStream();
                cs = new CryptoStream(ms, ct, CryptoStreamMode.Write);
                cs.Write(byt, 0, byt.Length);
                cs.FlushFinalBlock();
                cs.Close();

                return Convert.ToBase64String(ms.ToArray());
            }
            catch (Exception ex)
            {
                //MessageBox.Show(ex.Message, "出現(xiàn)異常", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return ("Error in Encrypting " + ex.Message);
            }
        }

        /// <summary>
        /// 解密字符串
        /// </summary>
        /// <param name="Value">加密后的字符串</param>
        /// <param name="sKey">密鑰,必須32位</param>
        /// <param name="sIV">向量,必須是12個(gè)字符</param>
        /// <returns>解密后的字符串</returns>
        public string DecryptString(string Value, string sKey, string sIV)
        {
            try
            {
                ICryptoTransform ct;//加密轉(zhuǎn)換運(yùn)算
                MemoryStream ms;//內(nèi)存流
                CryptoStream cs;//數(shù)據(jù)流連接到數(shù)據(jù)加密轉(zhuǎn)換的流
                byte[] byt;
                //將3DES的密鑰轉(zhuǎn)換成byte
                mCSP.Key = Convert.FromBase64String(sKey);
                //將3DES的向量轉(zhuǎn)換成byte
                mCSP.IV = Convert.FromBase64String(sIV);
                mCSP.Mode = System.Security.Cryptography.CipherMode.ECB;
                mCSP.Padding = System.Security.Cryptography.PaddingMode.PKCS7;
                ct = mCSP.CreateDecryptor(mCSP.Key, mCSP.IV);//創(chuàng)建對(duì)稱解密對(duì)象
                byt = Convert.FromBase64String(Value);
                ms = new MemoryStream();
                cs = new CryptoStream(ms, ct, CryptoStreamMode.Write);
                cs.Write(byt, 0, byt.Length);
                cs.FlushFinalBlock();
                cs.Close();

                return Encoding.UTF8.GetString(ms.ToArray());
            }
            catch (Exception ex)
            {
                //MessageBox.Show(ex.Message, "出現(xiàn)異常", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return ("Error in Decrypting " + ex.Message);
            }
        }

        #endregion
    }
}


調(diào)用方法如下:
復(fù)制代碼 代碼如下:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            EncryptHelper helper = new EncryptHelper();

            //加密
            string oldValue = "13800138000";
            //加密后結(jié)果
            //密鑰,必須32位
            string sKey = "qJzGEh6hESZDVJeCnFPGuxzaiB7NLQM5";
            //向量,必須是12個(gè)字符
            string sIV = "andyliu1234=";
            //print
            string newValue =  helper.EncryptString(oldValue,sKey,sIV);
            Console.WriteLine("加密后:"+ newValue);
            //解密
            string desValue = helper.DecryptString(newValue,sKey,sIV);
            //
            Console.WriteLine("解密后:"+ desValue);
            Console.ReadLine();

        }
    }
}

相關(guān)文章

最新評(píng)論

屏南县| 临沂市| 泽普县| 吴江市| 临颍县| 内江市| 噶尔县| 乐至县| 湘阴县| 诏安县| 杭锦后旗| 平遥县| 南开区| 镇雄县| 徐闻县| 中山市| 睢宁县| 女性| 钟山县| 正定县| 营山县| 苏尼特左旗| 海门市| 宜君县| 双城市| 鹤庆县| 襄垣县| 那坡县| 德令哈市| 玉林市| 石台县| 广东省| 庆城县| 阳高县| 宿松县| 沙洋县| 江油市| 泾川县| 治县。| 大竹县| 裕民县|