【13】MD5编码、Zlib压缩解压缩

1.MD5加密

 1     /// <summary>
 2     /// 使用MD5加密算法
 3     /// </summary>
 4     /// <param name="md5MessageStr">需要加密的字符串</param>
 5     /// <returns>加密后返回字符串</returns>
 6     public static string GetMD5String(string md5MessageStr)
 7     {
 8         using (MD5 md5 = new MD5CryptoServiceProvider())
 9         {
10             byte[] convertValue = Encoding.UTF8.GetBytes(md5MessageStr);
11             byte[] resultValue = md5.ComputeHash(convertValue);
12             string strResult = string.Empty;
13             for (int i = 0; i < 16; i++)
14             {
15                 strResult += resultValue[i].ToString("x2");
16             }
17             return strResult;
18         }
19     }  

2.Zlib压缩解压缩

nuget获取zlib.net

 1         using System;
 2         using System.Collections.Generic;
 3         using System.IO;
 4         using System.Linq;
 5         using System.Web;
 6         using zlib;
 7
 8         namespace LargePlatformService.Logic
 9         {
10             public class ZLibNetHelper
11             {
12                 /// <summary>
13                 /// zlib.net 解压函数
14                 /// </summary>
15                 /// <param name="strSource">带解压数据源</param>
16                 /// <returns>解压后的数据</returns>
17                 public static string DeflateDecompress(string strSource)
18                 {
19                     int data = 0;
20                     int stopByte = -1;
21                     byte[] Buffer = Convert.FromBase64String(strSource); // 解base64
22                     MemoryStream intms = new MemoryStream(Buffer);
23                     zlib.ZInputStream inZStream = new zlib.ZInputStream(intms);
24                     List<byte> inByteList = new List<byte>();
25                     int i = 0;
26                     while (stopByte != (data = inZStream.Read()))
27                     {
28                         inByteList.Add((byte)data);
29                     }
30                     inZStream.Close();
31                     return System.Text.Encoding.UTF8.GetString(inByteList.ToArray(), 0, inByteList.Count);
32
33                 }
34
35                 /// <summary>
36                 /// zlib.net 压缩函数
37                 /// </summary>
38                 /// <param name="strSource">待压缩数据</param>
39                 /// <returns>压缩后数据</returns>
40                 public static string DeflateCompress(string strSource)
41                 {
42                     MemoryStream outms = new MemoryStream();
43                     byte[] bytes = System.Text.Encoding.UTF8.GetBytes(strSource);
44                     MemoryStream inms = new MemoryStream(bytes);
45                     zlib.ZOutputStream outZStream = new zlib.ZOutputStream(outms, zlib.zlibConst.Z_DEFAULT_COMPRESSION);
46                     try
47                     {
48                         CopyStream(inms, outZStream);
49                     }
50                     catch (Exception ex)
51                     {
52                         throw ex;
53                     }
54                     finally
55                     {
56                         outZStream.Close();
57                     }
58                     return Convert.ToBase64String(outms.ToArray());
59                 }
60
61
62                 public static void CopyStream(System.IO.Stream input, System.IO.Stream output)
63                 {
64                     byte[] buffer = new byte[2000];
65                     int len;
66                     while ((len = input.Read(buffer, 0, 2000)) > 0)
67                     {
68                         output.Write(buffer, 0, len);
69                     }
70                     output.Flush();
71                 }
72             }
73         } 
时间: 2024-08-03 02:37:18

【13】MD5编码、Zlib压缩解压缩的相关文章

Huffman编码实现压缩解压缩

这是我们的课程中布置的作业,找一些资料将作业完成,顺便将其写到博客,以后看起来也方便. 原理介绍 什么是Huffman压缩 Huffman( 哈夫曼 ) 算法在上世纪五十年代初提出来了,它是一种无损压缩方法,在压缩过程中不会丢失信息熵,而且可以证明 Huffman 算法在无损压缩算法中是最优的. Huffman 原理简单,实现起来也不困难,在现在的主流压缩软件得到了广泛的应用.对应用程序.重要资料等绝对不允许信息丢失的压缩场合, Huffman 算法是非常好的选择. 怎么实现Huffman压缩

golang zlib 压缩,解压缩

package main import ( "bytes" "compress/zlib" "fmt" "io" "os" ) //进行zlib压缩 func DoZlibCompress(src []byte) []byte { var in bytes.Buffer w := zlib.NewWriter(&in) w.Write(src) w.Close() return in.Bytes()

谢烟客---------Linux之压缩解压缩及归档工具的使用

压缩工具 compress/uncompress:  .Z结尾 gzip/gunzip: .gz结尾 bzip2/bunzip2: .bz2结尾 xz/unxz: .xz后缀 压缩及归档工具: zip/unzip 归档工具: tar,cpio(特殊场景) gzip/gunzip/zcat命令 1.LZ77压缩算法 2.压缩比不高:快速.高效 3.压缩/解压缩后删除原文件,为了节约空间 4.纯文本压缩,二进制压缩意义不大 5.压缩目录,-r gzip [OPTIONS...] FILE     -

基于哈夫曼编码的压缩解压程序

这个程序是研一上学期的课程大作业.当时,跨专业的我只有一点 C 语言和数据结构基础,为此,我查阅了不少资料,再加上自己的思考和分析,实现后不断调试.测试和完善,耗时一周左右,在 2012/11/19 完成.虽然这是一个很小的程序,但却是我完成的第一个程序. 源码托管在 Github:点此打开链接 一.问题描述: 名称:基于哈夫曼编码的文件压缩解压 目的:利用哈夫曼编码压缩存储文件,节省空间 输入:任何格式的文件(压缩)或压缩文件(解压) 输出:压缩文件或解压后的原文件 功能:利用哈夫曼编码压缩解

Huffman 压缩解压缩java实现

Huffman编码的原理这里就不说了,网上随处都是.这里来讲讲利用Huffman编码来进行压缩和解压缩的具体实现吧.本工程使用java实现. 编码 1. 流程图 2. 数据结构 CharacterWeight:记录字符值,以及其在待压缩文件中的权重. Class{ char c; //字符值 int weight; //在文件中权重 String code; //其对应huffman编码 } HuffmanNode:huffman树中的节点信息. Class{ Int parent; //父节点

Qt之zip压缩/解压缩(QuaZIP)

摘要: 简述 QuaZIP是使用Qt/C++对ZLIB进行简单封装的用于压缩及解压缩ZIP的开源库.适用于多种平台,利用它可以很方便的将单个或多个文件打包为zip文件,且打包后的zip文件可以通过其它工具打开. 简述 QuaZIP是使用Qt/C++对ZLIB进行简单封装的用于压缩及解压缩ZIP的开源库.适用于多种平台,利用它可以很方便的将单个或多个文件打包为zip文件,且打包后的zip文件可以通过其它工具打开. Qt中提供了qCompress/qUncompress来进行文件的压缩与解压,但存在

MD5编码工具类 MD5Code.java

package com.util; /** * MD5编码工具类 * */ public class MD5Code { static final int S11 = 7; static final int S12 = 12; static final int S13 = 17; static final int S14 = 22; static final int S21 = 5; static final int S22 = 9; static final int S23 = 14; sta

JAVA压缩 解压缩zip 并解决linux下中文乱码

1. [代码][Java]代码   1:再压缩前,要设置linux模式, 需要使用第三方ant-1.6.5.jar  如果是文件目录,则ZipEntry zipEntry=new ZipEntry(basePath + System.getProperties().getProperty("file.separator"));zipEntry.setUnixMode(755);//解决linux乱码 如果是文件,则 ZipEntry zipEntry=new ZipEntry(base

Linux压缩/解压缩命令使用方法

compress 命令 [[email protected] ~]# compress [-dcr] 文件或目录 参数: -d :用来解压缩的参数 -r :可以连同目录下的文件也同时给予压缩[此参数慎用比较危险] -c :将压缩资料输出成为 standard output (输出到屏幕) 范例: 范例一:将 /etc/install.log 复制到 /tmp ,并加以压缩 [[email protected] ~]# cd /tmp [[email protected] tmp]# cp /et