(原创)常用加密解密

加密
代码
public static string Encrypt(string toEncrypt, bool useHashing)
    {
        
byte[] keyArray;
        
byte[] toEncryptArray = UTF8Encoding.UTF8.GetBytes(toEncrypt);

        System.Configuration.AppSettingsReader settingsReader 
= new AppSettingsReader();

        
string key = (string)settingsReader.GetValue("SecurityKey"typeof(String));

        
if (useHashing)
        {
            MD5CryptoServiceProvider hashmd5 
= new MD5CryptoServiceProvider();
            keyArray 
= hashmd5.ComputeHash(UTF8Encoding.UTF8.GetBytes(key));

            hashmd5.Clear();
        }
        
else
            keyArray 
= UTF8Encoding.UTF8.GetBytes(key);

        TripleDESCryptoServiceProvider tdes 
= new TripleDESCryptoServiceProvider();

        tdes.Key 
= keyArray;

        tdes.Mode 
= CipherMode.ECB;
        tdes.Padding 
= PaddingMode.PKCS7;

        ICryptoTransform cTransform 
= tdes.CreateEncryptor();

        
byte[] resultArray = cTransform.TransformFinalBlock
                (toEncryptArray, 
0, toEncryptArray.Length);
        tdes.Clear();
        
return Convert.ToBase64String(resultArray, 0, resultArray.Length);
    }

解密:

代码
public static string Decrypt(string cipherString, bool useHashing)
    {
        
byte[] keyArray;


        
byte[] toEncryptArray = Convert.FromBase64String(cipherString);

        System.Configuration.AppSettingsReader settingsReader 
= new AppSettingsReader();
        
string key = (string)settingsReader.GetValue("SecurityKey"typeof(String));

        
if (useHashing)
        {
            MD5CryptoServiceProvider hashmd5 
= new MD5CryptoServiceProvider();
            keyArray 
= hashmd5.ComputeHash(UTF8Encoding.UTF8.GetBytes(key));

            hashmd5.Clear();
        }
        
else
        {
            keyArray 
= UTF8Encoding.UTF8.GetBytes(key);
         }

        TripleDESCryptoServiceProvider tdes 
= new TripleDESCryptoServiceProvider();

        tdes.Key 
= keyArray;
        

        tdes.Mode 
= CipherMode.ECB;

        tdes.Padding 
= PaddingMode.PKCS7;

        ICryptoTransform cTransform 
= tdes.CreateDecryptor();
        
byte[] resultArray = cTransform.TransformFinalBlock
                (toEncryptArray, 
0, toEncryptArray.Length);

        tdes.Clear();

        
return UTF8Encoding.UTF8.GetString(resultArray);
    }

 

 

 

posted on 2009-12-09 15:42  冬日阳光  阅读(303)  评论(1编辑  收藏  举报

导航