文件加密&字符加密的代码

文件加密&字符加密的代码  
///<summary>文件加密类 使用DES加密文件流</summary>
///<param>desKey: DES的密钥;desIV: DES向量</param>

class encrypfile{
        public byte[] desKey;
        public byte[] desIV;

        public encrypfile(byte[] inputKey,byte[] inputIV){
            desKey=inputKey;
            desIV=inputIV;

        }

        ///<summary>加密主方法</summary>
        ///<param>inName:被加密文件名;outName: 加密后文件名</param>
        public void begintoencry(string inName,string outName){
            FileStream fin = new FileStream(inName, FileMode.Open, FileAccess.Read);
            FileStream fout = new FileStream(outName, FileMode.OpenOrCreate, FileAccess.Write);
            fout.SetLength(0);

            byte[] bin = new byte[100]; //This is intermediate storage for the encryption.
            long rdlen = 0;              //This is the total number of bytes written.
            long totlen = fin.Length;    //This is the total length of the input file.
            int len;                     //This is the number of bytes to be written at a time.
            DES des = new DESCryptoServiceProvider();
            CryptoStream encStream = new CryptoStream(fout, des.CreateEncryptor(desKey, desIV), CryptoStreamMode.Write);


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

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


加密字符流
  //pToEncrypt为需要加密字符串,sKey为密钥
  public string Encrypt(string pToEncrypt, string sKey)
  {
   DESCryptoServiceProvider des = new DESCryptoServiceProvider();
   //把字符串放到byte数组中
   byte[] inputByteArray = Encoding.Default.GetBytes(pToEncrypt);

   //建立加密对象的密钥和向量
   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);

   cs.Write(inputByteArray, 0, inputByteArray.Length);
   cs.FlushFinalBlock();
   StringBuilder ret = new StringBuilder();
   foreach(byte b in ms.ToArray())
   {
    ret.AppendFormat("{0:X2}", b);
   }
   return ret.ToString();
  }

 

本文来自: 站长(http://www.qqcf.com/) 详细出处参考:http://study.qqcf.com/web/573/155143.htm

你可能感兴趣的:(文件)