字符串加密与解密 (MD5)

加密、解密字符串时,需要用到加密类和内存流,所以首先需要在命名控件中需要进行引入

  static string encryptKey = "Oyea"; //定义秘钥

 public string Encrypt(string str)  //加密
        {
            DESCryptoServiceProvider descsp = new DESCryptoServiceProvider();//实例化加密对象
            byte[] key = Encoding.Unicode.GetBytes(encryptKey);//定义字节数组,用来存储秘钥
            byte[] data = Encoding.Unicode.GetBytes(str);//定义字节数组,用来要存储加密的字符串
            MemoryStream mStream = new MemoryStream();//实例化内存流对象
            //使用内存流实例化加密对象
            CryptoStream cStream = new CryptoStream(mStream, descsp.CreateEncryptor(key, key), CryptoStreamMode.Write);
            cStream.Write(data,0, data.Length);
            cStream.FlushFinalBlock();
            return Convert.ToBase64String( mStream.ToArray());
        }

        public string DesCrypr(string str)
        {
            DESCryptoServiceProvider descsp = new DESCryptoServiceProvider();//定义加密类对象
            byte[] key = Encoding.Unicode.GetBytes(encryptKey);
            byte[] data = Convert.FromBase64String(str);
            MemoryStream mStram = new MemoryStream();//实例化内存流对象
            CryptoStream cStream = new CryptoStream(mStram, descsp.CreateDecryptor(key, key), CryptoStreamMode.Write);
            cStream.Write(data,0,data.Length);
            cStream.FlushFinalBlock();
            return Encoding.Unicode.GetString(mStram.ToArray());

        }

//MD5加密  不可逆

 public string GetMd5(string str) //加密方法
        {
            string strResult = string.Empty;
            //创建实例
            MD5 md5 = MD5.Create();
            byte[] strByte=   Encoding.Default.GetBytes(str); //字符转换成字符数组
            byte[] md5Buffer=    md5.ComputeHash(strByte, 0, strByte.Length); //转换加密数组
            for (int i = 0; i < md5Buffer.Length; i++)  //循环
            {
                strResult += md5Buffer[i].ToString("X2"); //自己转换成16进制
            }
            return    strResult;
        }

原文地址:https://www.cnblogs.com/haimingkaifa/p/5710881.html