zoukankan      html  css  js  c++  java
  • C# DES 加密解密类

    //名称空间  
    using  System;  
    using  System.Security.Cryptography;  
    using  System.IO;  
    using  System.Text;  

    //方法  
    //加密方法  
    public    string  Encrypt(string  pToEncrypt,  string  sKey)  
    {  
               DESCryptoServiceProvider  des  
    =  new  DESCryptoServiceProvider();  
               
    //把字符串放到byte数组中  
                     
    //原来使用的UTF8编码,我改成Unicode编码了,不行  
               byte[]  inputByteArray  =  Encoding.Default.GetBytes(pToEncrypt);  
               
    //byte[]  inputByteArray=Encoding.Unicode.GetBytes(pToEncrypt);  

               
    //建立加密对象的密钥和偏移量  
               
    //原文使用ASCIIEncoding.ASCII方法的GetBytes方法  
               
    //使得输入密码必须输入英文文本  
               des.Key  =  ASCIIEncoding.ASCII.GetBytes(sKey);  
               des.IV  
    =  ASCIIEncoding.ASCII.GetBytes(sKey);  
               MemoryStream  ms  
    =  new  MemoryStream();  
               CryptoStream  cs  
    =  new  CryptoStream(ms,  des.CreateEncryptor(),CryptoStreamMode.Write);  
               
    //Write  the  byte  array  into  the  crypto  stream  
               
    //(It  will  end  up  in  the  memory  stream)  
               cs.Write(inputByteArray,  0,  inputByteArray.Length);  
               cs.FlushFinalBlock();  
               
    //Get  the  data  back  from  the  memory  stream,  and  into  a  string  
               StringBuilder  ret  =  new  StringBuilder();  
               
    foreach(byte  b  in  ms.ToArray())  
                           
    {  
                           
    //Format  as  hex  
                           ret.AppendFormat("{0:X2}",  b);  
                           }
      
               ret.ToString();  
               
    return  ret.ToString();  
    }
      

    //解密方法  
    public    string  Decrypt(string  pToDecrypt,  string  sKey)  
    {  
               DESCryptoServiceProvider  des  
    =  new  DESCryptoServiceProvider();  

               
    //Put  the  input  string  into  the  byte  array  
               byte[]  inputByteArray  =  new  byte[pToDecrypt.Length  /  2];  
               
    for(int  x  =  0;  x  <  pToDecrypt.Length  /  2;  x++)  
               
    {  
                         
    int  i  =  (Convert.ToInt32(pToDecrypt.Substring(x  *  2,  2),  16));  
                   inputByteArray[x]  
    =  (byte)i;  
               }
      

               
    //建立加密对象的密钥和偏移量,此值重要,不能修改  
               des.Key  =  ASCIIEncoding.ASCII.GetBytes(sKey);  
               des.IV  
    =  ASCIIEncoding.ASCII.GetBytes(sKey);  
               MemoryStream  ms  
    =  new  MemoryStream();  
               CryptoStream  cs  
    =  new  CryptoStream(ms,  des.CreateDecryptor(),CryptoStreamMode.Write);  
               
    //Flush  the  data  through  the  crypto  stream  into  the  memory  stream  
               cs.Write(inputByteArray,  0,  inputByteArray.Length);  
               cs.FlushFinalBlock();  

               
    //Get  the  decrypted  data  back  from  the  memory  stream  
               
    //建立StringBuild对象,CreateDecrypt使用的是流对象,必须把解密后的文本变成流对象  
               StringBuilder  ret  =  new  StringBuilder();  
                 
               
    return  System.Text.Encoding.Default.GetString(ms.ToArray());  
    }
      

    来源:http://blog.csdn.net/keyu23/archive/2005/09/27/490577.aspx


    using System; 
    using System.IO; 
    using System.Text; 
    using System.Security.Cryptography; 
    using System.Web; 
    namespace Test.Com 

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

    public class DESEncryptor 

    私有成员 
    公共属性 
    构造函数 
    DES加密字符串 
    DES解密字符串 
    DES加密文件 
    DES解密文件 
    MD5 




    }
     
    }
     


    来源: http://www.3s8.cn/develop/c1/200611/324.html
  • 相关阅读:
    文字列をバイトで切る
    把SmartForm转换成PDF
    相对布局和网格布局
    帧布局和表格布局
    计算器布局
    课堂总结和练习
    Android UI组件
    2层导航
    导航
    课堂总结
  • 原文地址:https://www.cnblogs.com/yiki/p/873043.html
Copyright © 2011-2022 走看看