使用DESCryptoServiceProvider类对数据或者文件进行加密解密

using  System;
using  System.Collections;
using  System.ComponentModel;
using  System.Data;
using  System.Drawing;
using  System.Web;
using  System.Web.SessionState;
using  System.Web.UI;
using  System.Web.UI.WebControls;
using  System.Web.UI.HtmlControls;
using  System.Security.Cryptography;
using  System.IO;
using  System.Text;
namespace  CommonFunction
{
    
/// <summary>
    
/// secret 的摘要说明。
    
/// </summary>

    public partial class secrettest : System.Web.UI.Page
    
{
        
protected string txtFilePath,fileExtName;

        Secret jiami 
= new Secret();

        
protected void Page_Load(object sender, System.EventArgs e)
        
{
            
// 在此处放置用户代码以初始化页面
        }

        
Web Form Designer generated code

        
protected void btnJia_Click(object sender, System.EventArgs e)
        
{
            txtNew.Text 
= jiami.DesEncrypt(txtValue.Text,"songxiud");
        }


        
protected void btnJie_Click(object sender, System.EventArgs e)
        
{
            txtValue.Text 
= jiami.DesDecrypt(txtNew.Text.Trim(),"songxiud");
        }


        
protected void btnOpen_Click(object sender, System.EventArgs e)
        
{
            
if(filePath.PostedFile.FileName != "")
            
{
                txtFilePath 
=filePath.PostedFile.FileName;
                fileExtName 
= txtFilePath.Substring(txtFilePath.LastIndexOf(".")+1,3);

                
if(fileExtName !="txt" && fileExtName != "TXT")
                
{
                    Response.Write(
"请选择文本文件");
                }

                
else
                
{
                    StreamReader fileStream 
= new StreamReader(txtFilePath,Encoding.Default);
                    txtContent.Text 
= fileStream.ReadToEnd();
                    fileStream.Close();
                }

            }

        }


        
protected void btnFile_Click(object sender, System.EventArgs e)
        
{
            jiami.DesEncrypt(Server.MapPath(
"txtFile")+"\\work.txt",Server.MapPath("txtFile")+"\\work1.txt","songxiud");
            StreamReader fileStream 
= new StreamReader(Server.MapPath("txtFile")+"\\work1.txt",Encoding.Default);
            txtContent.Text 
= fileStream.ReadToEnd();
            fileStream.Close();
        }


        
protected void btnFileDes_Click(object sender, System.EventArgs e)
        
{
            jiami.DesDecrypt(Server.MapPath(
"txtFile")+"\\work1.txt",Server.MapPath("txtFile")+"\\workjie.txt","songxiud");
            StreamReader fileStream 
= new StreamReader(Server.MapPath("txtFile")+"\\workjie.txt",Encoding.Default);
            txtContent.Text 
= fileStream.ReadToEnd();
            fileStream.Close();
        }


    
    }

}

<% @ Page language="c#" Inherits="CommonFunction.secrettest" CodeFile="secret.aspx.cs"  %>
<! DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"  >
< HTML >
    
< HEAD >
        
< title > secret </ title >
        
< meta  content ="Microsoft Visual Studio 7.0"  name ="GENERATOR" >
        
< meta  content ="C#"  name ="CODE_LANGUAGE" >
        
< meta  content ="JavaScript"  name ="vs_defaultClientScript" >
        
< meta  content ="http://schemas.microsoft.com/intellisense/ie5"  name ="vs_targetSchema" >
    
</ HEAD >
    
< body  bgColor ="#ccccff" >
        
< form  id ="usersecret"  method ="post"  encType ="multipart/form-data"  runat ="server" >
            
< FONT  face ="宋体" >
                
< asp:textbox  id ="txtValue"  style ="Z-INDEX: 101; LEFT: 168px; POSITION: absolute; TOP: 72px"  runat ="server" ></ asp:textbox >< asp:button  id ="btnJia"  style ="Z-INDEX: 102; LEFT: 344px; POSITION: absolute; TOP: 72px"  runat ="server"
                    Text
="数据加密"  onclick ="btnJia_Click" ></ asp:button >< asp:button  id ="btnJie"  style ="Z-INDEX: 103; LEFT: 344px; POSITION: absolute; TOP: 104px"  runat ="server"
                    Text
="数据解密"  onclick ="btnJie_Click" ></ asp:button >< asp:textbox  id ="txtNew"  style ="Z-INDEX: 104; LEFT: 168px; POSITION: absolute; TOP: 112px"  runat ="server" ></ asp:textbox >< asp:textbox  id ="txtContent"  style ="Z-INDEX: 105; LEFT: 168px; POSITION: absolute; TOP: 160px"
                    runat
="server"  Width ="200px"  Height ="296px"  TextMode ="MultiLine" ></ asp:textbox >< asp:button  id ="btnFile"  style ="Z-INDEX: 106; LEFT: 408px; POSITION: absolute; TOP: 312px"  runat ="server"
                    Text
="文件加密"  onclick ="btnFile_Click" ></ asp:button >< asp:button  id ="btnFileDes"  style ="Z-INDEX: 107; LEFT: 408px; POSITION: absolute; TOP: 384px"
                    runat
="server"  Text ="文件解密"  onclick ="btnFileDes_Click" ></ asp:button >< INPUT  id ="filePath"  style ="Z-INDEX: 108; LEFT: 408px; POSITION: absolute; TOP: 160px"
                    type
="file"  name ="File1"  runat ="server" >
                
< asp:button  id ="btnOpen"  style ="Z-INDEX: 109; LEFT: 408px; POSITION: absolute; TOP: 240px"  runat ="server"
                    Text
="打开文件"  onclick ="btnOpen_Click" ></ asp:button >
                
< asp:Label  id ="Label1"  style ="Z-INDEX: 110; LEFT: 168px; POSITION: absolute; TOP: 32px"  runat ="server" > 该示例以txtFile文件夹下的Work.txt文件为例 </ asp:Label ></ FONT ></ form >
    
</ body >
</ HTML >
using  System;
using  System.Security.Cryptography;
using  System.IO;
using  System.Text;
namespace  CommonFunction
{
    
/// <summary>
    
///数据加密、解密,文件的加密解密
    
/// </summary>

    public class Secret
    
{
        
public Secret()
        
{
            
//
            
// TODO: 在此处添加构造函数逻辑
            
//
        }


        
public string DesEncrypt(string strText, string strEncrKey)
        
{
            
byte[] byKey=null;
            
byte[] IV= {0x120x340x560x780x900xAB0xCD0xEF};
            
try
            
{
                byKey 
= System.Text.Encoding.UTF8.GetBytes(strEncrKey.Substring(0,strEncrKey.Length));
                DESCryptoServiceProvider des 
= new DESCryptoServiceProvider();
                
byte[] inputByteArray = Encoding.UTF8.GetBytes(strText);
                MemoryStream ms 
= new MemoryStream();
                CryptoStream cs 
= new CryptoStream(ms, des.CreateEncryptor(byKey, IV), CryptoStreamMode.Write) ;
                cs.Write(inputByteArray, 
0, inputByteArray.Length);
                cs.FlushFinalBlock();
                
return Convert.ToBase64String(ms.ToArray());


            }

            
catch(System.Exception error)
            
{
                
return "error:" +error.Message+"\r";
            }

        }


        
public string DesDecrypt(string strText,string sDecrKey)
        
{
            
byte[] byKey = null;
            
byte[] IV= {0x120x340x560x780x900xAB0xCD0xEF};
            
byte[] inputByteArray = new Byte[strText.Length];
            
try
            
{
                byKey 
= System.Text.Encoding.UTF8.GetBytes(sDecrKey.Substring(0,8));
                DESCryptoServiceProvider des 
= new DESCryptoServiceProvider();
                inputByteArray 
= Convert.FromBase64String(strText);            
                MemoryStream ms 
= new MemoryStream();
                CryptoStream cs 
= new CryptoStream(ms, des.CreateDecryptor(byKey, IV), CryptoStreamMode.Write); 
                cs.Write(inputByteArray, 
0, inputByteArray.Length); 
                cs.FlushFinalBlock();
                System.Text.Encoding encoding 
= new System.Text.UTF8Encoding();
                
return encoding.GetString(ms.ToArray());
            }

            
catch(System.Exception error)
            
{
                
return "error:"+error.Message+"\r";
            }


        }

        
        
public void DesEncrypt(string m_InFilePath,string m_OutFilePath,string strEncrKey)
        
{
            
byte[] byKey=null;
            
byte[] IV= {0x120x340x560x780x900xAB0xCD0xEF};
            
try
            
{
                byKey 
= System.Text.Encoding.UTF8.GetBytes(strEncrKey.Substring(0,8));
                FileStream fin 
= new FileStream(m_InFilePath, FileMode.Open, FileAccess.Read);
                FileStream fout 
= new FileStream(m_OutFilePath, FileMode.OpenOrCreate, FileAccess.Write);
                fout.SetLength(
0);
                
byte[] bin = new byte[100]; 
                
long rdlen = 0;
                
long totlen = fin.Length;
                
int len; 
                DES des 
= new DESCryptoServiceProvider();
                CryptoStream encStream 
= new CryptoStream(fout, des.CreateEncryptor(byKey, IV), CryptoStreamMode.Write);
                
while(rdlen < totlen)
                
{
                    len 
= fin.Read(bin, 0100);
                    encStream.Write(bin, 
0, len);
                    rdlen 
= rdlen + len;
                }


                encStream.Close();
                fout.Close();
                fin.Close();
            }

            
catch
            
{
                
            }

        }


        
public void DesDecrypt(string m_InFilePath,string m_OutFilePath,string sDecrKey)
        
{
            
byte[] byKey = null;
            
byte[] IV= {0x120x340x560x780x900xAB0xCD0xEF};
            
try
            
{
                byKey 
= System.Text.Encoding.UTF8.GetBytes(sDecrKey.Substring(0,8));
                FileStream fin 
= new FileStream(m_InFilePath, FileMode.Open, FileAccess.Read);
                FileStream fout 
= new FileStream(m_OutFilePath, FileMode.OpenOrCreate, FileAccess.Write);
                fout.SetLength(
0);
                
                
byte[] bin = new byte[100]; 
                
long rdlen = 0
                
long totlen = fin.Length; 
                
int len; 

                DES des 
= new DESCryptoServiceProvider();
                CryptoStream encStream 
= new CryptoStream(fout, des.CreateDecryptor(byKey, IV), CryptoStreamMode.Write);

                
while(rdlen < totlen)
                
{
                    len 
= fin.Read(bin, 0100);
                    encStream.Write(bin, 
0, len);
                    rdlen 
= rdlen + len;
                }


                encStream.Close();
                fout.Close();
                fin.Close();

            }

            
catch
            
{
                
            }



        }


        
public string MD5Encrypt(string strText)
        
{
            MD5 md5 
= new MD5CryptoServiceProvider();
            
byte[] result = md5.ComputeHash(System.Text.Encoding.Default.GetBytes(strText));
            
return System.Text.Encoding.Default.GetString(result);
        }


        
public string MD5Decrypt(string strText)
        
{
            MD5 md5 
= new MD5CryptoServiceProvider();
            
byte[] result = md5.TransformFinalBlock(System.Text.Encoding.Default.GetBytes(strText),0,strText.Length);
            
return System.Text.Encoding.Default.GetString(result);
        }

    }

}

你可能感兴趣的:(Provider)