/// <summary>
    
/// SecureAttribute 的摘要说明。
    
/// </summary>

    public class SecureAttribute
    
{
        
private static byte[] keys = new byte[]
        
{
            
13398721431716218783715179199247
        }
;
        
private static byte[] vectors = new byte[]
        
{
            
913923177213639012953122187190321013513892
        }
;
private static byte[] keys = new byte[]
        
{
            
13398721431716218783715179199247
        }
;
        
private static byte[] vectors = new byte[]
        
{
            
913923177213639012953122187190321013513892
        }
;

        
// 加密串
        public static string EncryptString(string Source)
        
{
            ASCIIEncoding textConverter 
= new ASCIIEncoding();
            RC2CryptoServiceProvider rc2CSP 
= new RC2CryptoServiceProvider();
            
byte[] encrypted;
            
byte[] toEncrypt;
            rc2CSP.EffectiveKeySize 
= 128;
            
// 生成加密器.
            ICryptoTransform encryptor = rc2CSP.CreateEncryptor(keys, vectors);
            
            
// 加密数据
            MemoryStream msEncrypt = new MemoryStream();
            CryptoStream csEncrypt 
= new CryptoStream(msEncrypt, encryptor, CryptoStreamMode.Write);

            
// 转换数据到字节表
            toEncrypt = textConverter.GetBytes(Source);

            
// 执行加密
            csEncrypt.Write(toEncrypt, 0, toEncrypt.Length);
            csEncrypt.FlushFinalBlock();

            
// 取加密过的字节流
            encrypted = msEncrypt.ToArray();

            
// 返回结果
            return Convert.ToBase64String(encrypted);
        }


        
// 解密串
        public static string DecryptString(string Source)
        
{
            
byte[] fromEncrypt;
            
byte[] encrypted;

            ASCIIEncoding textConverter 
= new ASCIIEncoding();
            RC2CryptoServiceProvider rc2CSP 
= new RC2CryptoServiceProvider();
            rc2CSP.EffectiveKeySize 
= 128;

            
// 生成解密器
            ICryptoTransform decryptor = rc2CSP.CreateDecryptor(keys, vectors);

            
// 取得源加密字节流
            encrypted    = System.Convert.FromBase64String(Source);

            
// 解密字节流
            MemoryStream msDecrypt = new MemoryStream(encrypted);
            CryptoStream csDecrypt 
= new CryptoStream(msDecrypt, decryptor, CryptoStreamMode.Read);

            fromEncrypt 
= new byte[encrypted.Length];
            csDecrypt.Read(fromEncrypt, 
0, fromEncrypt.Length);
            
int n = 0;
            
foreach (byte b in fromEncrypt)
            
{
                
if (b != 0)
                
{
                    n
++;
                }

                
else
                
{
                    
break;
                }

            }

            
byte[] bs = new byte[n];
            
for (int i = 0; i < n; i++)
            
{
                bs[i] 
= fromEncrypt[i];
            }

            
string s = textConverter.GetString(bs);

            
// 返回解密串
            return s;
        }

    }

posted on 2006-06-23 15:56  过江  阅读(432)  评论(0编辑  收藏  举报