示例#1
0
        /// <summary>
        /// 加密
        /// </summary>
        /// <param name="decryptString">要被加密数据</param>
        /// <param name="decryptKey">DES算法的工作密钥</param>
        /// <returns>密文</returns>
        public static string Encrypt(string encryptString, string encryptKey)
        {
            encryptKey = UniversalTool.GetSubString(encryptKey, 8, "");
            encryptKey = encryptKey.PadRight(8, ' ');
            byte[] bytes  = Encoding.UTF8.GetBytes(encryptKey.Substring(0, 8));
            byte[] keys   = Keys;
            byte[] buffer = Encoding.UTF8.GetBytes(encryptString);
            DESCryptoServiceProvider provider = new DESCryptoServiceProvider();
            MemoryStream             stream   = new MemoryStream();
            CryptoStream             stream2  = new CryptoStream(stream, provider.CreateEncryptor(bytes, keys), CryptoStreamMode.Write);

            stream2.Write(buffer, 0, buffer.Length);
            stream2.FlushFinalBlock();
            return(Convert.ToBase64String(stream.ToArray()));//Base64是网络上最常见的用于传输8Bit字节代码的编码方式之一,Base64要求把每三个8Bit的字节转换为四个6Bit的字节(3*8 = 4*6 = 24),然后把6Bit再添两位高位0,组成四个8Bit的字节。
            //Base64编码可用于在HTTP环境下传递较长的标识信息,如较长的唯一标识符(一般为128-bit的UUID)编码为一个字符串,用作HTTP表单和HTTP GET URL中的参数,或者将二进制数据编码为适合放在URL(包括隐藏表单域)中的形式。此时,采用Base64编码不仅比较简短,同时也具有不可读性,即所编码的数据不会被人用肉眼所直接看到。
        }
示例#2
0
 private static byte[] Keys = new byte[] { 0x12, 0x34, 0x56, 120, 0x90, 0xab, 0xcd, 0xef };//8个bit位,是DES算法的初始化向量  加解密钥也是8位;
 /// <summary>
 /// 解密字符串
 /// </summary>
 /// <param name="decryptString">是要被解密的密文数据</param>
 /// <param name="decryptKey">DES算法的工作密钥</param>
 /// <returns>明文</returns>
 public static string Decrypt(string decryptString, string decryptKey)
 {
     try
     {
         decryptKey = UniversalTool.GetSubString(decryptKey, 8, "");
         decryptKey = decryptKey.PadRight(8, ' ');
         byte[] bytes  = Encoding.UTF8.GetBytes(decryptKey);
         byte[] keys   = Keys;
         byte[] buffer = Convert.FromBase64String(decryptString);
         DESCryptoServiceProvider provider = new DESCryptoServiceProvider();
         MemoryStream             stream   = new MemoryStream();
         CryptoStream             stream2  = new CryptoStream(stream, provider.CreateDecryptor(bytes, keys), CryptoStreamMode.Write);
         stream2.Write(buffer, 0, buffer.Length);
         stream2.FlushFinalBlock();
         return(Encoding.UTF8.GetString(stream.ToArray()));
     }
     catch
     {
         return("");
     }
 }