现在的位置: 首页 > 综合 > 正文

字符串加密解密

2013年03月21日 ⁄ 综合 ⁄ 共 3694字 ⁄ 字号 评论关闭
 

 类文件代码

 

using System;
using System.Text;
using System.IO;
using System.Security.Cryptography;

namespace WebApplicationI
{

    
public abstract class  ClassDE
    
{
        


        
public    static void Ecode(string strEcode)
        
{
            
            btnKeyGen();
            
            btnIVGen();
            
             txtEncrypted 
= EncryptString(strEcode);
            
//
            txtOriginal = DecryptString(txtEncrypted);
        }


        
public static void Dcode(string strEncrypted)
        
{
            txtEncrypted    
=    strEncrypted;
            btnKeyGen();
            
            btnIVGen();            
            
            txtOriginal 
= DecryptString(txtEncrypted);
        }


        
public static string Encrypted
        
{
            
get
            
{return txtEncrypted;            }
        }


        
public static    string    Original
        
{
            
get{return txtOriginal;}
        }


        
private static SymmetricAlgorithm mCSP;
        
//下面的两个key值可以自己设置
        private static string txtKey    =    "tkGGRmBErVC=";//设置加密Key
        private static string txtIV        =        "Kl7ZgtM1dvQ=";//设置加密IV
        private    static string txtEncrypted =string.Empty ,txtOriginal = string.Empty ;


        


    
        
private static void btnKeyGen()
        
{
            mCSP 
= SetEnc();

            
byte[] byt2 = Convert.FromBase64String(txtKey);

            mCSP.Key 
= byt2;
        }


        
private static void btnIVGen()
        
{
            
byte[] byt2 = Convert.FromBase64String(txtIV);

            mCSP.IV 
= byt2;
        }


        
private static string EncryptString(string Value)
        
{
            ICryptoTransform ct;
            MemoryStream ms;
            CryptoStream cs;
            
byte[] byt;

            ct 
= mCSP.CreateEncryptor(mCSP.Key, mCSP.IV);

            byt 
= Encoding.UTF8.GetBytes(Value);

            ms 
= new MemoryStream();
            cs 
= new CryptoStream(ms, ct, CryptoStreamMode.Write);
            cs.Write(byt, 
0, byt.Length);
            cs.FlushFinalBlock();
 
            cs.Close();

            
return Convert.ToBase64String(ms.ToArray());
        }


        
private static string DecryptString(string Value)
        
{
            ICryptoTransform ct;
            MemoryStream ms;
            CryptoStream cs;
            
byte[] byt;

            ct 
= mCSP.CreateDecryptor(mCSP.Key, mCSP.IV);

            byt 
= Convert.FromBase64String(Value);

            ms 
= new MemoryStream();
            cs 
= new CryptoStream(ms, ct, CryptoStreamMode.Write);
            cs.Write(byt, 
0, byt.Length);
            cs.FlushFinalBlock();

            cs.Close();

            
return Encoding.UTF8.GetString(ms.ToArray());
        }


        
private static SymmetricAlgorithm SetEnc()
        
{
            
return new DESCryptoServiceProvider();
        }

    }

}

 

 

前台调用部分

 

string _sqlConn    =" 需要加密的字符串";
            
            Page.Response .Write(
"加密测试:"+_sqlConn);
            Page.Response .Write(
"<br>");
            ClassDE.Ecode  (_sqlConn);
            Page.Response .Write(
"<br>");
            Page.Response .Write(    ClassDE.Encrypted);
            Page.Response .Write(
"<br>");
            Page.Response .Write(    ClassDE.Original);
            Page.Response .Write(
"<br>");

            Page.Response .Write(
"<br>");
            Page.Response .Write(
"<br>");
            Page.Response .Write(
"<br>");

            
string Encode = " 经过加密的字符串";

            Page.Response .Write(
"解密测试:"+Encode);
            Page.Response .Write(
"<br>");
            ClassDE.Dcode   (Encode);

            Page.Response .Write(
"<br>");
            Page.Response .Write(    ClassDE.Encrypted);
            Page.Response .Write(
"<br>");
            Page.Response .Write(    ClassDE.Original);


 

抱歉!评论已关闭.