C#如何实现DES加密算法

2025-10-18 14:16:35

1、打开vs2010,建立一个项目,名称随意。

如图,笔者建立了一个简单的WinForm项目,名称为:DES加密。

C#如何实现DES加密算法

2、新建一个类,具体步骤为:

在【解决方案资源管理器】窗口中右键项目名,依次选择“添加”→“类”,如图所示。

类名为:EncryptDES.cs,点击添加。

C#如何实现DES加密算法

C#如何实现DES加密算法

3、在类文件中添加如下代码:读者只需复制即可

        /// <summary>

        /// DES加密字符串

        /// </summary>

        /// <param name="encryptString">待加密的字符串</param>

        /// <param name="encryptKey">加密密钥,要求为8位</param>

        /// <returns>加密成功返回加密后的字符串,失败返回源串</returns>

        public static string strEncryptDES(string encryptString, string encryptKey)

        {

            try

            {

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

                //rgbIV与rgbKey可以不一样,这里只是为了简便,读者可以自行修改

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

                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;

            }

        }

这里要用到三个类:

1.DESCryptoServiceProvider类:在最上方添加“using System.Security.Cryptography;”即可。

2.MemoryStream类:在最上方添加“using System.IO;”即可。

3.CryptoStream类:与2相同,在最上方添加“using System.IO;”即可。

C#如何实现DES加密算法

4、到这里算是实现了C#中的DES加密算法,下面是对算法的测试,您可以跳过不看。

回到窗口界面,添加一个按钮,如图。

C#如何实现DES加密算法

5、双击该按钮,进入代码编辑界面,添加如下代码,如图。

string en = "C#如何实现DES加密算法";

string result = EncryptDES.strEncryptDES(en, "hello,I am bianyuanhuanghun");

MessageBox.Show(result);

C#如何实现DES加密算法

6、运行程序,点击按钮,出现加密后的字符串,如图,测试结束。

C#如何实现DES加密算法

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢