网站开发后台数据怎么来,设计网站国外网站,成都网站建设 招聘,wordpress汉字验证码插件介绍
数据压缩是将原有数据通过某种压缩算法计算得到相对数据量小的过程。这种过程是可逆的#xff0c;即能通过压缩后的数据恢复出原数据。数据压缩能够节省存储空间#xff0c;减轻网络负载。
在即需要加密又需要压缩的情况下#xff0c;必须先压缩再加密#xff0c;次…介绍
数据压缩是将原有数据通过某种压缩算法计算得到相对数据量小的过程。这种过程是可逆的即能通过压缩后的数据恢复出原数据。数据压缩能够节省存储空间减轻网络负载。
在即需要加密又需要压缩的情况下必须先压缩再加密次序不能颠倒。因为加密后的数据是一个无序的数据对它进行数据压缩效果不大。
SSL协议本身支持压缩算法Openssl实现也支持压缩算法。它实现了一个空的压缩算法(crypto/comp/c_rle.c)并支持zlib压缩算法crypto/comp/ c_zlib.c。openssl中用户可实现自己的压缩算法。
当openssl在有zlib库的平台下安装时需要有zlib 或者zlib-dynamic选项。比如
./config zlib./config zlib-dynamic函数说明
COMP_rle
返回openssl实现的空压缩算法返回值为一个COMP_METHOD。
COMP_zlib
返回基于zlib库的COMP_METHOD。
COMP_CTX_new
初始化上下文输入参数为COMP_METHOD。
COMP_compress_block
压缩计算。
COMP_expand_block
解压计算。
openssl中压缩算法协商
Openssl中的压缩算法的协商与加密套件一样都是由客户端在client hello消息中指定一个算法列表而由服务端决定选取其中的一种并通过server hello消息来通知客户端。
编程示例
#include string.h#include openssl/comp.hint main(){COMP_CTX *ctx;int len,olen100,ilen50,i,total0;unsigned charin[50],out[100];unsigned charexpend[200];#ifdef _WIN32ctxCOMP_CTX_new(COMP_rle());#else/* for linux */ctxCOMP_CTX_new(COMP_zlib());#endiffor(i0;i50;i)memset(in[i],i,1);totalCOMP_compress_block(ctx,out,olen,in,50);lenCOMP_expand_block(ctx,expend,200,out,total);COMP_CTX_free(ctx);return 0;}