字符串加密與解密 (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;
        }


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM