C# 对称算法,加密解密类

C# 对称算法,加密解密类
调用有先获取类实例,提供了解密和加密函数。
《C# 对称算法,加密解密类》 using  System.IO; 
《C# 对称算法,加密解密类》
using  System; 
《C# 对称算法,加密解密类》
using  System.Text.RegularExpressions; 
《C# 对称算法,加密解密类》
using  System.Security.Cryptography;
《C# 对称算法,加密解密类》《C# 对称算法,加密解密类》    
/**/ /**/
《C# 对称算法,加密解密类》《C# 对称算法,加密解密类》    
/**/ /// <summary> 
《C# 对称算法,加密解密类》    
/// 对称加密算法类 
《C# 对称算法,加密解密类》    
/// </summary> 

《C# 对称算法,加密解密类》 public   class  DecryptEncrypt
《C# 对称算法,加密解密类》《C# 对称算法,加密解密类》
《C# 对称算法,加密解密类》 {
《C# 对称算法,加密解密类》《C# 对称算法,加密解密类》    
/**//**/
《C# 对称算法,加密解密类》《C# 对称算法,加密解密类》    
/**//// <summary> 
《C# 对称算法,加密解密类》    
/// 返回自身的一个类 
《C# 对称算法,加密解密类》    
/// </summary> 

《C# 对称算法,加密解密类》    public static DecryptEncrypt MyDecryptEncrypt
《C# 对称算法,加密解密类》《C# 对称算法,加密解密类》    
《C# 对称算法,加密解密类》{
《C# 对称算法,加密解密类》        
get
《C# 对称算法,加密解密类》《C# 对称算法,加密解密类》        
《C# 对称算法,加密解密类》{
《C# 对称算法,加密解密类》            
return new DecryptEncrypt();
《C# 对称算法,加密解密类》        }

《C# 对称算法,加密解密类》    }

《C# 对称算法,加密解密类》
《C# 对称算法,加密解密类》
《C# 对称算法,加密解密类》    
private SymmetricAlgorithm mobjCryptoService;
《C# 对称算法,加密解密类》    
private string Key;
《C# 对称算法,加密解密类》
《C# 对称算法,加密解密类》《C# 对称算法,加密解密类》    
/**//**/
《C# 对称算法,加密解密类》《C# 对称算法,加密解密类》    
/**//// <summary> 
《C# 对称算法,加密解密类》    
/// 对称加密类的构造函数 
《C# 对称算法,加密解密类》    
/// </summary> 

《C# 对称算法,加密解密类》    internal DecryptEncrypt()
《C# 对称算法,加密解密类》《C# 对称算法,加密解密类》    
《C# 对称算法,加密解密类》{
《C# 对称算法,加密解密类》        mobjCryptoService 
= new RijndaelManaged();
《C# 对称算法,加密解密类》        Key 
= \rrp(%&h70x89H$jgsfgfsI0456Ftma81&fvHrr&&76*h%(12lJ$lhj!y6&(*jkPer44a\“”;
《C# 对称算法,加密解密类》    }

《C# 对称算法,加密解密类》
《C# 对称算法,加密解密类》《C# 对称算法,加密解密类》    
/**//**/
《C# 对称算法,加密解密类》《C# 对称算法,加密解密类》    
/**//// <summary> 
《C# 对称算法,加密解密类》    
/// 获得密钥 
《C# 对称算法,加密解密类》    
/// </summary> 
《C# 对称算法,加密解密类》    
/// <returns>密钥</returns> 

《C# 对称算法,加密解密类》    private byte[] GetLegalKey()
《C# 对称算法,加密解密类》《C# 对称算法,加密解密类》    
《C# 对称算法,加密解密类》{
《C# 对称算法,加密解密类》        
string _TempKey = Key;
《C# 对称算法,加密解密类》        mobjCryptoService.GenerateKey();
《C# 对称算法,加密解密类》        
byte[] bytTemp = mobjCryptoService.Key;
《C# 对称算法,加密解密类》        
int KeyLength = bytTemp.Length;
《C# 对称算法,加密解密类》        
if (_TempKey.Length > KeyLength)
《C# 对称算法,加密解密类》            _TempKey 
= _TempKey.Substring(0, KeyLength);
《C# 对称算法,加密解密类》        
else if (_TempKey.Length < KeyLength)
《C# 对称算法,加密解密类》            _TempKey 
= _TempKey.PadRight(KeyLength,  );
《C# 对称算法,加密解密类》        
return ASCIIEncoding.ASCII.GetBytes(_TempKey);
《C# 对称算法,加密解密类》    }

《C# 对称算法,加密解密类》《C# 对称算法,加密解密类》    
/**//**/
《C# 对称算法,加密解密类》《C# 对称算法,加密解密类》    
/**//// <summary> 
《C# 对称算法,加密解密类》    
/// 获得初始向量IV 
《C# 对称算法,加密解密类》    
/// </summary> 
《C# 对称算法,加密解密类》    
/// <returns>初试向量IV</returns> 

《C# 对称算法,加密解密类》    private byte[] GetLegalIV()
《C# 对称算法,加密解密类》《C# 对称算法,加密解密类》    
《C# 对称算法,加密解密类》{
《C# 对称算法,加密解密类》        
string _TempIV = \@afetj*Ghg7!rNIfsgr95GUqd9gsrb#GG7HBh(urjj6HJ($jhWk7&!hjjri%$hjk\“”;
《C# 对称算法,加密解密类》        mobjCryptoService.GenerateIV();
《C# 对称算法,加密解密类》        
byte[] bytTemp = mobjCryptoService.IV;
《C# 对称算法,加密解密类》        
int IVLength = bytTemp.Length;
《C# 对称算法,加密解密类》        
if (_TempIV.Length > IVLength)
《C# 对称算法,加密解密类》            _TempIV 
= _TempIV.Substring(0, IVLength);
《C# 对称算法,加密解密类》        
else if (_TempIV.Length < IVLength)
《C# 对称算法,加密解密类》            _TempIV 
= _TempIV.PadRight(IVLength,  );
《C# 对称算法,加密解密类》        
return ASCIIEncoding.ASCII.GetBytes(_TempIV);
《C# 对称算法,加密解密类》    }

《C# 对称算法,加密解密类》
《C# 对称算法,加密解密类》《C# 对称算法,加密解密类》    
/**//**/
《C# 对称算法,加密解密类》《C# 对称算法,加密解密类》    
/**//// <summary> 
《C# 对称算法,加密解密类》    
/// 加密方法 
《C# 对称算法,加密解密类》    
/// </summary> 
《C# 对称算法,加密解密类》    
/// <param name=\”Source\”>待加密的串</param> 
《C# 对称算法,加密解密类》    
/// <returns>经过加密的串</returns> 

《C# 对称算法,加密解密类》    public string Encrypto(string Source)
《C# 对称算法,加密解密类》《C# 对称算法,加密解密类》    
《C# 对称算法,加密解密类》{
《C# 对称算法,加密解密类》        
byte[] bytIn = UTF8Encoding.UTF8.GetBytes(Source);
《C# 对称算法,加密解密类》        MemoryStream ms 
= new MemoryStream();
《C# 对称算法,加密解密类》        mobjCryptoService.Key 
= GetLegalKey();
《C# 对称算法,加密解密类》        mobjCryptoService.IV 
= GetLegalIV();
《C# 对称算法,加密解密类》        
//创建对称加密器对象 [Page]
《C# 对称算法,加密解密类》
        ICryptoTransform encrypto = mobjCryptoService.CreateEncryptor();
《C# 对称算法,加密解密类》        
//定义将数据流链接到加密转换的流 
《C# 对称算法,加密解密类》
        CryptoStream cs = new CryptoStream(ms, encrypto, CryptoStreamMode.Write);
《C# 对称算法,加密解密类》        cs.Write(bytIn, 
0, bytIn.Length);
《C# 对称算法,加密解密类》        cs.FlushFinalBlock();
《C# 对称算法,加密解密类》        ms.Close();
《C# 对称算法,加密解密类》        
byte[] bytOut = ms.ToArray();
《C# 对称算法,加密解密类》        
return Convert.ToBase64String(bytOut);
《C# 对称算法,加密解密类》    }

《C# 对称算法,加密解密类》
《C# 对称算法,加密解密类》
《C# 对称算法,加密解密类》《C# 对称算法,加密解密类》    
/**//**/
《C# 对称算法,加密解密类》《C# 对称算法,加密解密类》    
/**//// <summary> 
《C# 对称算法,加密解密类》    
/// 解密方法 
《C# 对称算法,加密解密类》    
/// </summary> 
《C# 对称算法,加密解密类》    
/// <param name=\”Source\”>待解密的串</param> 
《C# 对称算法,加密解密类》    
/// <returns>经过解密的串</returns> 

《C# 对称算法,加密解密类》    public string Decrypto(string Source)
《C# 对称算法,加密解密类》《C# 对称算法,加密解密类》    
《C# 对称算法,加密解密类》{
《C# 对称算法,加密解密类》        
byte[] bytIn = Convert.FromBase64String(Source);
《C# 对称算法,加密解密类》        MemoryStream ms 
= new MemoryStream(bytIn, 0, bytIn.Length);
《C# 对称算法,加密解密类》        mobjCryptoService.Key 
= GetLegalKey();
《C# 对称算法,加密解密类》        mobjCryptoService.IV 
= GetLegalIV();
《C# 对称算法,加密解密类》        
//创建对称解密器对象 
《C# 对称算法,加密解密类》
        ICryptoTransform encrypto = mobjCryptoService.CreateDecryptor();
《C# 对称算法,加密解密类》        
//定义将数据流链接到加密转换的流 
《C# 对称算法,加密解密类》
        CryptoStream cs = new CryptoStream(ms, encrypto, CryptoStreamMode.Read);
《C# 对称算法,加密解密类》        StreamReader sr 
= new StreamReader(cs);
《C# 对称算法,加密解密类》        
return sr.ReadToEnd();
《C# 对称算法,加密解密类》    }

《C# 对称算法,加密解密类》}

    原文作者:honour
    原文地址: http://www.cnblogs.com/honour/articles/1211626.html
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞