static void Main(string[] args)
        {
            System.Text.Encoding utf8 = System.Text.Encoding.UTF8;
            //加密字符串   秘钥 IV
            var str = DESEncrypt("cs-123-1594971950656", "553036673260679053754558", "12345678");
            var result = DESDecrypst(str, "553036673260679053754558", "12345678");


            Console.ReadKey();
        }
        /// <summary>
        /// ECB加密
        /// </summary>
        /// <param name="paymentCode">加密字符串</param>
        /// <param name="key">秘钥</param>
        /// <param name="iv">ECB模式不需要IV</param>
        /// <returns></returns>
        public static string DESEncrypt(string paymentCode, string key, string iv)
        {
            SymmetricAlgorithm symmetric;
            ICryptoTransform iCrypto;
            MemoryStream memory;
            CryptoStream crypto;
            byte[] byt;
            symmetric = new TripleDESCryptoServiceProvider();
            symmetric.Key = Encoding.UTF8.GetBytes(key);
            symmetric.IV = Encoding.UTF8.GetBytes(iv);
            symmetric.Mode = CipherMode.ECB;
            symmetric.Padding = PaddingMode.PKCS7;


            iCrypto = symmetric.CreateEncryptor();
            byt = Encoding.UTF8.GetBytes(paymentCode);
            memory = new MemoryStream();
            crypto = new CryptoStream(memory, iCrypto, CryptoStreamMode.Write);
            crypto.Write(byt, 0, byt.Length);
            crypto.FlushFinalBlock();
            crypto.Close();
            return Convert.ToBase64String(memory.ToArray());
        }

        /// <summary>
        /// ECB解密
        /// </summary>
        /// <param name="data">解密字符串</param>
        /// <param name="key">秘钥</param>
        /// <param name="iv">ECB模式不需要IV</param>
        /// <returns></returns>
        public static string DESDecrypst(string data, string key, string iv)
        {
            SymmetricAlgorithm mCSP = new TripleDESCryptoServiceProvider();

            mCSP.Key = Encoding.UTF8.GetBytes(key);
            mCSP.IV = Encoding.UTF8.GetBytes(iv);
            mCSP.Mode = CipherMode.ECB;
            mCSP.Padding = PaddingMode.PKCS7;

            ICryptoTransform iCrypto;
            MemoryStream memory;
            CryptoStream crypto;
            byte[] byt;
            iCrypto = mCSP.CreateDecryptor(mCSP.Key, mCSP.IV);

            byt = Convert.FromBase64String(data);
            memory = new MemoryStream();
            crypto = new CryptoStream(memory, iCrypto, CryptoStreamMode.Write);
            crypto.Write(byt, 0, byt.Length);
            crypto.FlushFinalBlock();
            crypto.Close();
            return Encoding.UTF8.GetString(memory.ToArray());
        }

 

相关文章:

  • 2021-06-10
  • 2022-03-05
  • 2021-08-21
  • 2022-01-10
  • 2022-12-23
  • 2021-12-13
  • 2022-12-23
  • 2021-12-18
猜你喜欢
  • 2022-02-23
  • 2022-01-17
  • 2021-11-27
  • 2021-12-22
  • 2021-12-11
  • 2022-12-23
相关资源
相似解决方案