• 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;
                    }
                }
            }
  • 相关阅读:
    二分法查找
    全排列 递归实现 c 语言实现
    南阳oj 题目290 动物统计加强版 字典树
    蛇形填数
    南阳理工oj 题目289 苹果 01背包
    南阳理工 oj 题目38 布线问题
    南阳理工oj 题目85 有趣的数 Cantor数表
    CSU-1110 RMQ with Shifts (单点更新+区间最小值 zkw线段树)
    POJ-2387 Til the Cows Come Home
    HDU-2680 Choose the best route
  • 原文地址:https://www.cnblogs.com/Fred1987/p/12522676.html
Copyright © 2020-2023  润新知