.NET中的加密解密:私钥加密(对称加密):AES、DES、RC2、Rijindael、TripleDES

namespace  Encrypt_And_Decrypt_PrivateKey
{
    
public   class  AesSample
    {
        Rijndael aes 
=   null ;

        
public  AesSample()
        {
            aes 
=  Rijndael.Create();

        }

        
public   string  Encrypt( string  data, byte [] bKey)
        {
            
try
            {
                
byte [] bData  =  Encoding.UTF8.GetBytes(data);
                aes.Key 
=  bKey;
                aes.Mode 
=  CipherMode.ECB;
                aes.Padding 
=  PaddingMode.PKCS7;

                ICryptoTransform iCryptoTransform 
=  aes.CreateEncryptor();
                
byte [] bResult  =
                    iCryptoTransform.TransformFinalBlock(bData, 
0 , bData.Length);

                
return  Convert.ToBase64String(bResult);
            }
            
catch
            {
                
throw ;
            }
        }

        
public   string  Decrypt( string  data,  byte [] bKey)
        {
            
try
            {
                
byte [] bData  =  Convert.FromBase64String(data);
                aes.Key 
=  bKey;
                aes.Mode 
=  CipherMode.ECB;
                aes.Padding 
=  PaddingMode.PKCS7;

                ICryptoTransform iCryptoTransform 
=  aes.CreateDecryptor();
                
byte [] bResult  =
                    iCryptoTransform.TransformFinalBlock(bData, 
0 , bData.Length);
                
return  Encoding.UTF8.GetString(bResult);
            }
            
catch
            {
                
throw ;
            }
        }

    }
// class AesSample

    
public   class  DesSample
    {
        DES des 
=   null ;

        
public  DesSample()
        {
            des 
=   new  DESCryptoServiceProvider();
        }

        
public   string  Encrypt( string  data,  byte [] bKey)
        {
            
try
            {
                
byte [] bData  =  Encoding.UTF8.GetBytes(data);
                des.Key 
=  bKey;

                ICryptoTransform iCryptoTransform 
=  des.CreateEncryptor();
                
byte [] bResult  =
                    iCryptoTransform.TransformFinalBlock(bData, 
0 , bData.Length);

                
return  Convert.ToBase64String(bResult);
            }
            
catch
            {
                
throw ;
            }
        }

        
public   string  Decrypt( string  data,  byte [] bKey)
        {
            
try
            {
                
byte [] bData  =  Convert.FromBase64String(data);
                des.Key 
=  bKey;

                ICryptoTransform iCryptoTransform 
=  des.CreateDecryptor();
                
byte [] bResult  =
                    iCryptoTransform.TransformFinalBlock(bData, 
0 , bData.Length);
                
return  Encoding.UTF8.GetString(bResult);
            }
            
catch
            {
                
throw ;
            }
        }

    }
// class DesSample

    
public   class  Rc2Sample
    {
        RC2 rc2 
=   null ;

        
public  Rc2Sample()
        {
            rc2 
=   new  RC2CryptoServiceProvider();
        }

        
public   string  Encrypt( string  data,  byte [] bKey)
        {
            
try
            {
                
byte [] bData  =  Encoding.UTF8.GetBytes(data);
                rc2.Key 
=  bKey;

                ICryptoTransform iCryptoTransform 
=  rc2.CreateEncryptor();
                
byte [] bResult  =
                    iCryptoTransform.TransformFinalBlock(bData, 
0 , bData.Length);

                
return  Convert.ToBase64String(bResult);
            }
            
catch
            {
                
throw ;
            }
        }

        
public   string  Decrypt( string  data,  byte [] bKey)
        {
            
try
            {
                
byte [] bData  =  Convert.FromBase64String(data);
                rc2.Key 
=  bKey;

                ICryptoTransform iCryptoTransform 
=  rc2.CreateDecryptor();
                
byte [] bResult  =
                    iCryptoTransform.TransformFinalBlock(bData, 
0 , bData.Length);
                
return  Encoding.UTF8.GetString(bResult);
            }
            
catch
            {
                
throw ;
            }
        }
    }

    
public   class  RijndaelSample
    {
        Rijndael rijndael 
=   null ;

        
public  RijndaelSample()
        {
            rijndael 
=   new  RijndaelManaged();
        }

        
public   string  Encrypt( string  data,  byte [] bKey)
        {
            
try
            {
                
byte [] bData  =  Encoding.UTF8.GetBytes(data);
                rijndael.Key 
=  bKey;

                ICryptoTransform iCryptoTransform 
=  rijndael.CreateEncryptor();
                
byte [] bResult  =
                    iCryptoTransform.TransformFinalBlock(bData, 
0 , bData.Length);

                
return  Convert.ToBase64String(bResult);
            }
            
catch
            {
                
throw ;
            }
        }

        
public   string  Decrypt( string  data,  byte [] bKey)
        {
            
try
            {
                
byte [] bData  =  Convert.FromBase64String(data);
                rijndael.Key 
=  bKey;

                ICryptoTransform iCryptoTransform 
=  rijndael.CreateDecryptor();
                
byte [] bResult  =
                    iCryptoTransform.TransformFinalBlock(bData, 
0 , bData.Length);
                
return  Encoding.UTF8.GetString(bResult);
            }
            
catch
            {
                
throw ;
            }
        }

    }

    
public   class  TripleDESSample
    {
        TripleDES tDes 
=   null ;

        
public  TripleDESSample()
        {
            tDes 
=   new  TripleDESCryptoServiceProvider();
        }

        
public   string  Encrypt( string  data,  byte [] bKey)
        {
            
try
            {
                
byte [] bData  =  Encoding.UTF8.GetBytes(data);
                tDes.Key 
=  bKey;

                ICryptoTransform iCryptoTransform 
=  tDes.CreateEncryptor();
                
byte [] bResult  =
                    iCryptoTransform.TransformFinalBlock(bData, 
0 , bData.Length);

                
return  Convert.ToBase64String(bResult);
            }
            
catch
            {
                
throw ;
            }
        }

        
public   string  Decrypt( string  data,  byte [] bKey)
        {
            
try
            {
                
byte [] bData  =  Convert.FromBase64String(data);
                tDes.Key 
=  bKey;

                ICryptoTransform iCryptoTransform 
=  tDes.CreateDecryptor();
                
byte [] bResult  =
                    iCryptoTransform.TransformFinalBlock(bData, 
0 , bData.Length);
                
return  Encoding.UTF8.GetString(bResult);
            }
            
catch
            {
                
throw ;
            }
        }
    }

}
// ns

 

 

 

 

 

using  System;
using  System.Collections.Generic;
using  System.Linq;
using  System.Text;
using  System.Collections;

namespace  Encrypt_And_Decrypt_PrivateKey
{
    
class  Program
    {
        
static   void  Main( string [] args)
        {
            
byte [] bKey8  =  UTF8Encoding.UTF8.GetBytes( " 12345678 " );
            
byte [] bKey16  =  UTF8Encoding.UTF8.GetBytes( " 1234567890123456 " );
            
byte [] bKey32  =  UTF8Encoding.UTF8.GetBytes( " 12345678901234567890123456789012 " );

            
string  data  =   " Hello,I am Jie. " ;

            Console.WriteLine(
" Aes Sample " );
            AesSample aes 
=   new  AesSample();
            
string  aesData  =   "" ;
            aesData 
=  aes.Encrypt(data, bKey32);
            Console.WriteLine(
" AES Encrypt:{0} " , aesData);
            Console.WriteLine(
" AES Decrypt:{0} " , aes.Decrypt(aesData, bKey32));
            Console.WriteLine();

            Console.WriteLine(
" Des Sample " );
            DesSample des 
=   new  DesSample();
            
string  desData  =   "" ;
            desData 
=  des.Encrypt(data, bKey8);
            Console.WriteLine(
" DES Encrypt:{0} " , desData);
            Console.WriteLine(
" DES Decrypt:{0} " , des.Decrypt(desData, bKey8));
            Console.WriteLine();

            Console.WriteLine(
" RC2 Sample " );
            Rc2Sample rc2 
=   new  Rc2Sample();
            
string  rc2Data  =   "" ;
            rc2Data 
=  rc2.Encrypt(data, bKey8);
            Console.WriteLine(
" RC2 Encrypt:{0} " , rc2Data);
            Console.WriteLine(
" RC2 Decrypt:{0} " , rc2.Decrypt(rc2Data, bKey8));
            Console.WriteLine();

            Console.WriteLine(
" Rijndael Sample " );
            RijndaelSample rijndael 
=   new  RijndaelSample();
            
string  rijndaelData  =   "" ;
            rijndaelData 
=  rijndael.Encrypt(data, bKey32);
            Console.WriteLine(
" Rijndael Encrypt:{0} " , rijndaelData);
            Console.WriteLine(
" Rijndael Decrypt:{0} " , rijndael.Decrypt(rijndaelData, bKey32));
            Console.WriteLine();

            Console.WriteLine(
" TripleDES Sample " );
            TripleDESSample tripleDES 
=   new  TripleDESSample();
            
string  tripleDESData  =   "" ;
            tripleDESData 
=  tripleDES.Encrypt(data, bKey16);
            Console.WriteLine(
" TripleDES Encrypt:{0} " , tripleDESData);
            Console.WriteLine(
" TripleDES Decrypt:{0} " , tripleDES.Decrypt(tripleDESData, bKey16));
            Console.WriteLine();

            Console.Read();
        }
   
    }
}

 

你可能感兴趣的:(.net)