• TrippleDESCSPEncrypt 加密解密试试看


        public class TrippleDESCSPEncrypt
        {
            //12个字符  
            private static string customIV = "4vHKRj3yfzU=";
            //32个字符  
            private static string customKey = "xhVs6DRXLfUGxw+AhtfQdpQGoa+8SA9d";
    
            /// <summary>  
            /// 加密字符串  
            /// </summary>  
            /// <param name="password"></param>  
            /// <returns></returns>  
            public string EncryptPassword(string password)
            {
                string encryptPassword = string.Empty;
    
                SymmetricAlgorithm algorithm = new TripleDESCryptoServiceProvider();
                algorithm.Key = Convert.FromBase64String(customKey);
    
                algorithm.IV = Convert.FromBase64String(customIV);//在ECB模式下,IV不起作用
                algorithm.Mode = CipherMode.ECB;
                algorithm.Padding = PaddingMode.PKCS7;
    
                ICryptoTransform transform = algorithm.CreateEncryptor();
    
                byte[] data = (new System.Text.ASCIIEncoding()).GetBytes(password);
                MemoryStream memoryStream = new MemoryStream();
                CryptoStream cryptoStream = new CryptoStream(memoryStream, transform, CryptoStreamMode.Write);
    
                cryptoStream.Write(data, 0, data.Length);
                cryptoStream.FlushFinalBlock();
                encryptPassword = Convert.ToBase64String(memoryStream.ToArray());
    
                memoryStream.Close();
                cryptoStream.Close();
    
                return encryptPassword;
            }
    
            /// <summary>  
            /// 解密字符串  
            /// </summary>  
            /// <param name="password"></param>  
            /// <returns></returns>  
            public string DecryptPassword(string password)
            {
                string decryptPassword = string.Empty;
    
                SymmetricAlgorithm algorithm = new TripleDESCryptoServiceProvider();
                algorithm.Key = Convert.FromBase64String(customKey);
                algorithm.IV = Convert.FromBase64String(customIV);//在ECB模式下不起作用
                algorithm.Mode = CipherMode.ECB;
                algorithm.Padding = PaddingMode.PKCS7;
    
                ICryptoTransform transform = algorithm.CreateDecryptor(algorithm.Key, algorithm.IV);
           //ICryptoTransform transform = algorithm.CreateDecryptor();//在ECB模式下也可以使用此句。
            
    byte[] buffer = Convert.FromBase64String(password); MemoryStream memoryStream = new MemoryStream(buffer); CryptoStream cryptoStream = new CryptoStream(memoryStream, transform, CryptoStreamMode.Read); StreamReader reader = new StreamReader(cryptoStream, System.Text.Encoding.ASCII); decryptPassword = reader.ReadToEnd(); reader.Close(); cryptoStream.Close(); memoryStream.Close(); return decryptPassword; }
  • 相关阅读:
    数据库之ORACLE常见基础操作
    数据库基础之Oracle函数
    Snuketoon [ABC217H]
    Cards [CF1278F]
    Squirrel Migration [ARC087F]
    Xor Query [ABC223H]
    Three Permutations [ABC214G]
    雨林跳跃[APIO2021]
    Redis5.0 主从模式和高可用 搭建和测试报告
    Redis5 压力测试结果反馈报告
  • 原文地址:https://www.cnblogs.com/wolfocme110/p/4594647.html
Copyright © 2020-2023  润新知