des加密加密 base64 utf8

 ///
        /// DES加密
        /// </summary>
        /// <param name="encryptString"></param>
        /// <param name="sKey"></param>
        /// <returns></returns>
        public string DesEncrypt(string encryptString, string sKey)
        {
            var rgbKey = Encoding.UTF8.GetBytes(sKey.Substring(0, 8));
            var rgbIV = rgbKey;
            var inputByteArray = Encoding.UTF8.GetBytes(encryptString);
            var dCSP = new DESCryptoServiceProvider {Mode = CipherMode.ECB, Padding = PaddingMode.PKCS7};
            var mStream = new MemoryStream();
            var cStream = new CryptoStream(mStream, dCSP.CreateEncryptor(rgbKey, rgbIV), CryptoStreamMode.Write);
            cStream.Write(inputByteArray, 0, inputByteArray.Length);
            cStream.FlushFinalBlock();


            var  ret = new StringBuilder();
            foreach (byte b in mStream.ToArray())
            {
                ret.AppendFormat("{0:X2}", b);
            }  
            return ret.ToString();




        }
解密
 public static string MD5Decrypt(string pToDecrypt, string sKey)
        {
            DESCryptoServiceProvider des = new DESCryptoServiceProvider() { Mode = CipherMode.ECB, Padding = PaddingMode.PKCS7 };
            byte[] inputByteArray = new byte[pToDecrypt.Length / 2];
            for (int x = 0; x < pToDecrypt.Length / 2; x++)
            {
                int i = (Convert.ToInt32(pToDecrypt.Substring(x * 2, 2), 16));
                inputByteArray[x] = (byte)i;
            }
            des.Key = Encoding.UTF8.GetBytes(sKey);
            des.IV = Encoding.UTF8.GetBytes(sKey);
            MemoryStream ms = new MemoryStream();
            CryptoStream cs = new CryptoStream(ms, des.CreateDecryptor(), CryptoStreamMode.Write);
            cs.Write(inputByteArray, 0, inputByteArray.Length);
            cs.FlushFinalBlock();
            StringBuilder ret = new StringBuilder();
            return System.Text.Encoding.Default.GetString(ms.ToArray());
        }
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章