密码加密类(PermissionBase)

52 篇文章 0 订阅
24 篇文章 0 订阅
using  System;
using  System.Text;
using  System.IO;
using  System.Security.Cryptography;
///   <summary>
///  字符串加密解密类。
///   </summary>
public   sealed   class  StringSecurity
{
    
private  StringSecurity() { }

    
#region  SHA1 加密

    
///   <summary>
    
///  使用SHA1加密字符串。
    
///   </summary>
    
///   <param name="inputString"> 输入字符串。 </param>
    
///   <returns> 加密后的字符串。(40个字符) </returns>
     public   static   string  StringToSHA1Hash( string  inputString)
    {
        SHA1CryptoServiceProvider sha1 
=   new  SHA1CryptoServiceProvider();
        
byte [] encryptedBytes  =  sha1.ComputeHash(Encoding.ASCII.GetBytes(inputString));
        StringBuilder sb 
=   new  StringBuilder();
        
for  ( int  i  =   0 ; i  <  encryptedBytes.Length; i ++ )
        {
            sb.AppendFormat(
" {0:x2} " , encryptedBytes[i]);
        }
        
return  sb.ToString();
    }

    
#endregion

    
#region  DES 加密/解密

    
private   static   byte [] key  =  ASCIIEncoding.ASCII.GetBytes( " caikelun " );
    
private   static   byte [] iv  =  ASCIIEncoding.ASCII.GetBytes( " 12345678 " );

    
///   <summary>
    
///  DES加密。
    
///   </summary>
    
///   <param name="inputString"> 输入字符串。 </param>
    
///   <returns> 加密后的字符串。 </returns>
     public   static   string  DESEncrypt( string  inputString)
    {
        MemoryStream ms 
=   null ;
        CryptoStream cs 
=   null ;
        StreamWriter sw 
=   null ;

        DESCryptoServiceProvider des 
=   new  DESCryptoServiceProvider();
        
try
        {
            ms 
=   new  MemoryStream();
            cs 
=   new  CryptoStream(ms, des.CreateEncryptor(key, iv), CryptoStreamMode.Write);
            sw 
=   new  StreamWriter(cs);
            sw.Write(inputString);
            sw.Flush();
            cs.FlushFinalBlock();
            
return  Convert.ToBase64String(ms.GetBuffer(),  0 , ( int )ms.Length);
        }
        
finally
        {
            
if  (sw  !=   null ) sw.Close();
            
if  (cs  !=   null ) cs.Close();
            
if  (ms  !=   null ) ms.Close();
        }
    }

    
///   <summary>
    
///  DES解密。
    
///   </summary>
    
///   <param name="inputString"> 输入字符串。 </param>
    
///   <returns> 解密后的字符串。 </returns>
     public   static   string  DESDecrypt( string  inputString)
    {
        MemoryStream ms 
=   null ;
        CryptoStream cs 
=   null ;
        StreamReader sr 
=   null ;

        DESCryptoServiceProvider des 
=   new  DESCryptoServiceProvider();
        
try
        {
            ms 
=   new  MemoryStream(Convert.FromBase64String(inputString));
            cs 
=   new  CryptoStream(ms, des.CreateDecryptor(key, iv), CryptoStreamMode.Read);
            sr 
=   new  StreamReader(cs);
            
return  sr.ReadToEnd();
        }
        
finally
        {
            
if  (sr  !=   null ) sr.Close();
            
if  (cs  !=   null ) cs.Close();
            
if  (ms  !=   null ) ms.Close();
        }
    }

    
#endregion

}
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值