zoukankan      html  css  js  c++  java
  • C# DES加解密ECB模式

        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());
            }
  • 相关阅读:
    [译]WCF RIA Services中的集合(2)
    Silverlight中服务通信方式的选择(WCF、Data Service、Ria Service)
    记录来敦煌一周的情况
    Silverlight通过MVVM实现多语言实时切换(含源代码)
    [译]WCF RIA Services中的集合(1)
    Silverlight Client←→Server数据同步备忘代码
    Siverlight5新功能/改进总结
    Expression Blend 5 Preview For Silverlight5 RC已发布
    你应该知道的,那些未在Silverlight5Beta中出现的特性
    .NET数据库编程求索之路1.引子
  • 原文地址:https://www.cnblogs.com/wt-vip/p/13331342.html
Copyright © 2011-2022 走看看