//加密文件 privatestaticvoid EncryptData(String inName, String outName, byte[] desKey, byte[] desIV) ...{ //Create the file streams to handle the input and output files. FileStream fin =new FileStream(inName, FileMode.Open, FileAccess.Read); FileStream fout =new FileStream(outName, FileMode.OpenOrCreate, FileAccess.Write); fout.SetLength(0); //Create variables to help with read and write. byte[] bin =newbyte[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); //Read from the input file, then encrypt and write to the output file. while (rdlen < totlen) ...{ len = fin.Read(bin, 0, 100); encStream.Write(bin, 0, len); rdlen = rdlen + len; } encStream.Close(); fout.Close(); fin.Close(); } //解密文件 privatestaticvoid DecryptData(String inName, String outName, byte[] desKey, byte[] desIV) ...{ //Create the file streams to handle the input and output files. FileStream fin =new FileStream(inName, FileMode.Open, FileAccess.Read); FileStream fout =new FileStream(outName, FileMode.OpenOrCreate, FileAccess.Write); fout.SetLength(0); //Create variables to help with read and write. byte[] bin =newbyte[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.CreateDecryptor(desKey, desIV), CryptoStreamMode.Write); //Read from the input file, then encrypt and write to the output file. while (rdlen < totlen) ...{ len = fin.Read(bin, 0, 100); encStream.Write(bin, 0, len); rdlen = rdlen + len; } encStream.Close(); fout.Close(); fin.Close(); }