zoukankan      html  css  js  c++  java
  • TripleDESCryptoServiceProvider CryptoStream

    using System.Security.Cryptography;
    
     static void Main(string[] args)
            {
                string rawString = "Make every second count.";
                string encryptedString = Encrypt3DES(rawString);
                string decryptedString = Decrypt3DES(encryptedString);
                Console.WriteLine($"Raw:{rawString}
    encrypted:{encryptedString}
    decrypted:{decryptedString}");
                Console.ReadLine();
            }
    
            public static string Encrypt3DES(string rawString, string encryptKey = "serenityserenityserenityserenity", string encryptIv = "04D4DA042DE=")
            {
                using (SymmetricAlgorithm tripleDesProvider = new TripleDESCryptoServiceProvider())
                {
                    try
                    {
                        tripleDesProvider.Key = Convert.FromBase64String(encryptKey);
                        tripleDesProvider.IV = Convert.FromBase64String(encryptIv);
                        tripleDesProvider.Mode = System.Security.Cryptography.CipherMode.CBC;
                        tripleDesProvider.Padding = System.Security.Cryptography.PaddingMode.PKCS7;
                        using (ICryptoTransform ct = tripleDesProvider.CreateEncryptor(tripleDesProvider.Key, tripleDesProvider.IV))
                        {
                            byte[] bytes = Encoding.UTF8.GetBytes(rawString);
                            using (MemoryStream ms = new MemoryStream())
                            {
                                using (CryptoStream cs = new CryptoStream(ms, ct, CryptoStreamMode.Write))
                                {
                                    cs.Write(bytes, 0, bytes.Length);
                                    cs.FlushFinalBlock();
                                    cs.Close();
                                    string result = Convert.ToBase64String(ms.ToArray());
                                    return result;
                                }
                            }
                        }
                    }
                    catch (Exception ex)
                    {
                        throw;
                    }
                }
            }
    
            public static string Decrypt3DES(string rawString, string encryptKey = "serenityserenityserenityserenity", string encryptIv = "04D4DA042DE=")
            {
                using (SymmetricAlgorithm tripleDesProvider = new TripleDESCryptoServiceProvider())
                {
                    try
                    {
                        tripleDesProvider.Key = Convert.FromBase64String(encryptKey);
                        tripleDesProvider.IV = Convert.FromBase64String(encryptIv);
                        tripleDesProvider.Mode = System.Security.Cryptography.CipherMode.CBC;
                        tripleDesProvider.Padding = System.Security.Cryptography.PaddingMode.PKCS7;
                        using (ICryptoTransform ct = tripleDesProvider.CreateDecryptor(tripleDesProvider.Key, tripleDesProvider.IV))
                        {
                            byte[] bytes = Convert.FromBase64String(rawString);
                            using (MemoryStream ms = new MemoryStream())
                            {
                                using (CryptoStream cs = new CryptoStream(ms, ct, CryptoStreamMode.Write))
                                {
                                    cs.Write(bytes, 0, bytes.Length);
                                    cs.FlushFinalBlock();
                                    cs.Close(); 
                                    string result = Encoding.UTF8.GetString(ms.ToArray());
                                    return result;
                                }
                            }
                        }
                    }
                    catch (Exception ex)
                    {
                        throw;
                    }
                }
            }
  • 相关阅读:
    软件工程二人组队开发第一周
    软件工程第五周
    这学期的目标
    软件工程第四周的总结
    二维数组的最大子数组和 时间复杂度:O(n的四次方)
    10.tesseract
    mysql存储过程和函数
    mysql触发器
    9.selenium
    mysql练习
  • 原文地址:https://www.cnblogs.com/Fred1987/p/12522676.html
Copyright © 2011-2022 走看看