コード例 #1
0
        /// <summary>
        /// DES解密
        /// </summary>
        /// <param name="buffer">加密的数组</param>
        /// <param name="password">密钥</param>
        /// <param name="iv">解密矢量:只有在CBC解密模式下才适用</param>
        /// <param name="cMode">运算模式</param>
        /// <returns></returns>
        public static byte[] DecryptDES(DESTYPE type, byte[] buffer, string password, CipherMode cMode = CipherMode.ECB, PaddingMode pMode = PaddingMode.Zeros, byte[] iv = null)
        {
            try
            {
                SymmetricAlgorithm des = null;
                if (type == DESTYPE.DES)
                {
                    des = new DESCryptoServiceProvider();
                }
                if (type == DESTYPE.TripleDES)
                {
                    des = new TripleDESCryptoServiceProvider();
                }
                des.Key     = Encoding.UTF8.GetBytes(password);
                des.Mode    = cMode;
                des.Padding = pMode;

                if (cMode == CipherMode.CBC)
                {
                    des.IV = iv;
                }
                return(des.CreateDecryptor().TransformFinalBlock(buffer, 0, buffer.Length));
            }
            catch (Exception e)
            {
                throw e;
            }
        }
コード例 #2
0
 /// <summary>
 /// DES解密成string
 /// </summary>
 /// <param name="buffer">加密的数组</param>
 /// <param name="password">密钥</param>
 /// <param name="iv">解密矢量:只有在CBC解密模式下才适用</param>
 /// <param name="cMode">运算模式</param>
 /// <returns></returns>
 public static string DecryptDESToString(DESTYPE type, string base64text, string password, CipherMode cMode = CipherMode.ECB, PaddingMode pMode = PaddingMode.Zeros, byte[] iv = null)
 {
     return(Encoding.UTF8.GetString(DecryptDES(type, Convert.FromBase64String(base64text), password, cMode, pMode, iv)));
 }
コード例 #3
0
 /// <summary>
 /// DES解密Base64字符串成string
 /// </summary>
 /// <param name="buffer">加密的数组</param>
 /// <param name="password">密钥</param>
 /// <param name="iv">解密矢量:只有在CBC解密模式下才适用</param>
 /// <param name="cMode">运算模式</param>
 /// <returns></returns>
 public static string DecryptDESToString(DESTYPE type, byte[] buffer, string password, CipherMode cMode = CipherMode.ECB, PaddingMode pMode = PaddingMode.Zeros, byte[] iv = null)
 {
     return(Encoding.UTF8.GetString(DecryptDES(type, buffer, password, cMode, pMode, iv)));
 }
コード例 #4
0
 /// <summary>
 /// DES加密成Base64
 /// </summary>
 /// <param name="buffer">加密数组</param>
 /// <param name="password">加密的密码</param>
 /// <param name="iv">密钥</param>
 /// <param name="mode">运算模式</param>
 /// <returns>Base64字符串</returns>
 public static string EncryptDESToBase64(DESTYPE type, byte[] buffer, string password, CipherMode cMode = CipherMode.ECB, PaddingMode pMode = PaddingMode.Zeros, byte[] iv = null)
 {
     return(Convert.ToBase64String(EncryptDES(type, buffer, password, cMode, pMode, iv)));
 }