C# 加密与解密,经典MD5加密

2025-09-28 06:57:58

效果图:

C# 加密与解密,经典MD5加密

1.首先建一个解决方案与一个测试项目:

2.首先在头部using System.Security.Cryptography;引入MD5

3.源码:

 /// <summary>

        /// 32位MD5加密

        /// </summary>

        /// <param name="sender"></param>

        /// <param name="e"></param>

        private void button1_Click(object sender, EventArgs e)

        {

            string str = txtPwd.Text;

            MD5 md= MD5.Create();

            byte [] bytes=  md.ComputeHash(System.Text.Encoding.UTF8.GetBytes(str));

            foreach (byte b in bytes)

            {

                txtMd5.Text += b.ToString();

            }

        }

2. 效果图

C# 加密与解密,经典MD5加密

首先引入命名空间:using System.Security.Cryptography;

源码:

  #region 加密

        private void btnKey_Click(object sender, EventArgs e)

        {

            txtShow.Text = Encode(txtSetKey.Text, txtKey.Text, txtIV.Text);

        }

        //加密

        public static string Encode(string data, string Key_64, string Iv_64)

        {

            string KEY_64 = Key_64;// "VavicApp";

            string IV_64 = Iv_64;// "VavicApp";

            try

            {

                byte[] byKey = System.Text.ASCIIEncoding.ASCII.GetBytes(KEY_64);

                byte[] byIV = System.Text.ASCIIEncoding.ASCII.GetBytes(IV_64);

                DESCryptoServiceProvider cryptoProvider = new DESCryptoServiceProvider();

                int i = cryptoProvider.KeySize;

                MemoryStream ms = new MemoryStream();

                CryptoStream cst = new CryptoStream(ms, cryptoProvider.CreateEncryptor(byKey, byIV), CryptoStreamMode.Write);

                StreamWriter sw = new StreamWriter(cst);

                sw.Write(data);

                sw.Flush();

                cst.FlushFinalBlock();

                sw.Flush();

                return Convert.ToBase64String(ms.GetBuffer(), 0, (int)ms.Length);

            }

            catch (Exception x)

            {

                return x.Message;

            }

        }

        #endregion

3.解密效果图

C# 加密与解密,经典MD5加密

源码:

#region 解密

        private void btnStr_Click(object sender, EventArgs e)

        {

            txtShow.Text = Decode(txtRedKey.Text, txtKey.Text, txtIV.Text);

        }

        //解密

        public static string Decode(string data, string Key_64, string Iv_64)

        {

            string KEY_64 = Key_64;// "VavicApp";密钥

            string IV_64 = Iv_64;// "VavicApp"; 向量

            try

            {

                byte[] byKey = System.Text.ASCIIEncoding.ASCII.GetBytes(KEY_64);

                byte[] byIV = System.Text.ASCIIEncoding.ASCII.GetBytes(IV_64);

                byte[] byEnc;

                byEnc = Convert.FromBase64String(data); //把需要解密的字符串转为8位无符号数组

                DESCryptoServiceProvider cryptoProvider = new DESCryptoServiceProvider();

                MemoryStream ms = new MemoryStream(byEnc);

                CryptoStream cst = new CryptoStream(ms, cryptoProvider.CreateDecryptor(byKey, byIV), CryptoStreamMode.Read);

                StreamReader sr = new StreamReader(cst);

                return sr.ReadToEnd();

            }

            catch (Exception x)

            {

                return x.Message;

            }

        }

        #endregion

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