C# 利用ICSharpCode.SharpZipLib实现在线加密压缩和解密解压缩
2016-11-09 18:04
731 查看
这里我们选用ICSharpCode.SharpZipLib这个类库来实现我们的需求。
下载地址:http://icsharpcode.github.io/SharpZipLib/
1.单个或多个文件加密压缩
class ZipClass { public void ZipFile(string FileToZip, string ZipedFile, int CompressionLevel, int BlockSize) { if (!System.IO.File.Exists(FileToZip)) { throw new System.IO.FileNotFoundException("The specified file " + FileToZip + " could not be found. Zipping aborderd"); } System.IO.FileStream StreamToZip = new System.IO.FileStream(FileToZip, System.IO.FileMode.Open, System.IO.FileAccess.Read); System.IO.FileStream ZipFile = System.IO.File.Create(ZipedFile); ZipOutputStream ZipStream = new ZipOutputStream(ZipFile); ZipEntry ZipEntry = new ZipEntry("ZippedFile"); ZipStream.PutNextEntry(ZipEntry); ZipStream.SetLevel(CompressionLevel); byte[] buffer = new byte[BlockSize]; System.Int32 size = StreamToZip.Read(buffer, 0, buffer.Length); ZipStream.Write(buffer, 0, size); try { while (size < StreamToZip.Length) { int sizeRead = StreamToZip.Read(buffer, 0, buffer.Length); ZipStream.Write(buffer, 0, sizeRead); size += sizeRead; } } catch (System.Exception ex) { throw ex; } ZipStream.Finish(); ZipStream.Close(); StreamToZip.Close(); } /// <summary> /// 文件加密压缩 /// </summary> /// <param name="FileToZip">需要压缩的文件路径</param> /// <param name="ZipedFile">压缩包路径(压缩包文件类型看自己需求)</param> /// <param name="password">加密密码</param> public void ZipFileMain(string FileToZip, string ZipedFile, string password) { ZipOutputStream s = new ZipOutputStream(File.Create(ZipedFile)); s.SetLevel(6); // 0 - store only to 9 - means best compression s.Password = md5.encrypt(password); //打开压缩文件 FileStream fs = File.OpenRead(FileToZip); byte[] buffer = new byte[fs.Length]; fs.Read(buffer, 0, buffer.Length); Array arr = FileToZip.Split('\\'); string le = arr.GetValue(arr.Length - 1).ToString(); ZipEntry entry = new ZipEntry(le); entry.DateTime = DateTime.Now; entry.Size = fs.Length; fs.Close(); s.PutNextEntry(entry); s.Write(buffer, 0, buffer.Length); s.Finish(); s.Close(); } }
2.单个或多个加密压缩包解压
1 class md5 2 { 3 #region "MD5加密" 4 /// <summary> 5 ///32位 MD5加密 6 /// </summary> 7 /// <param name="str">加密字符</param> 8 /// <returns></returns> 9 public static string encrypt(string str) 10 { 11 string cl = str; 12 string pwd = ""; 13 MD5 md5 = MD5.Create(); 14 byte[] s = md5.ComputeHash(Encoding.UTF8.GetBytes(cl)); 15 for (int i = 0; i < s.Length; i++) 16 { 17 pwd = pwd + s[i].ToString("X"); 18 } 19 return pwd; 20 } 21 #endregion 22 }View Code
相关文章推荐
- C# 利用ICSharpCode.SharpZipLib实现在线加密压缩和解密解压缩 C# 文件压缩加解密
- C# 下利用ICSharpCode.SharpZipLib.dll实现文件/文件夹压缩、解压缩
- C# 下利用ICSharpCode.SharpZipLib.dll实现文件/文件夹压缩、解压缩
- C# 利用ICSharpCode.SharpZipLib实现在线压缩和解压缩
- C# 利用ICSharpCode.SharpZipLib.dll 实现压缩和解压缩文件
- C# 利用ICSharpCode.SharpZipLib实现在线压缩和解压缩
- C# 下利用ICSharpCode.SharpZipLib.dll实现文件/目录压缩、解压缩
- C# 下利用ICSharpCode.SharpZipLib.dll实现文件/文件夹压缩、解压缩
- 使用ICSharpCode.SharpZipLib进行文件压缩,目前还没实现加密压缩/解压缩。
- .Net 下利用ICSharpCode.SharpZipLib.dll实现文件压缩、解压缩
- .Net 下利用ICSharpCode.SharpZipLib.dll实现文件压缩、解压缩
- .Net 下利用ICSharpCode.SharpZipLib.dll实现文件、文件夹压缩、解压缩
- .Net 下利用ICSharpCode.SharpZipLib.dll实现文件/文件夹压缩、解压缩(改进)
- .Net 下利用ICSharpCode.SharpZipLib.dll实现文件压缩、解压缩
- 使用ICSharpCode.SharpZipLib.dll实现在线解压缩
- 使用ICSharpCode.SharpZipLib.dll实现在线解压缩
- 使用ICSharpCode.SharpZipLib.dll实现在线解压缩
- 使用ICSharpCode.SharpZipLib.Zip实现压缩与解压缩
- 使用ICSharpCode.SharpZipLib.dll实现在线解压缩
- C#+ICSharpCode.SharpZipLib.dll实现压缩解压缩功能