OpenSSL压缩算法协商与实现——树莓派+opencv4+python实战
需积分: 41 148 浏览量
更新于2024-08-10
收藏 2.26MB PDF 举报
"本文主要介绍了在OpenSSL中如何使用压缩算法,包括了几个关键的函数以及OpenSSL中压缩算法的协商过程。同时,作者赵春平分享了他使用OpenSSL进行编程的一些经历和心得,包括他在硕士论文和项目中与OpenSSL的交互,以及写作本书的初衷和过程。"
在OpenSSL库中,压缩算法扮演着重要的角色,特别是在网络安全和数据传输中,用于减少数据的大小,提高传输效率。文章中提到了几个关键的函数:
1. **COMP_rle**: 这个函数返回的是OpenSSL实现的一个简单的无压缩算法,返回类型为COMP_METHOD。RLE(Run-Length Encoding)是一种基本的无损数据压缩算法,主要用于处理具有重复序列的数据。
2. **COMP_zlib**: 此函数返回一个基于zlib库的COMP_METHOD。zlib是一个广泛使用的压缩库,提供了高效的数据压缩和解压缩功能,通常比OpenSSL内置的RLE更有效。
3. **COMP_CTX_new**: 这个函数用于初始化一个压缩算法的上下文结构体。参数为COMP_METHOD,它指定了要使用的具体压缩算法。
4. **COMP_compress_block** 和 **COMP_expand_block**: 分别用于执行数据压缩和解压缩操作。这两个函数是实际进行数据处理的核心,COMP_compress_block将未压缩的数据块压缩,而COMP_expand_block则将压缩后的数据恢复到原始状态。
在OpenSSL的通信协议中,如TLS/SSL,压缩算法的协商过程类似于加密套件的协商。在客户端发起的`client hello`消息中,会列出支持的压缩算法列表,然后服务器在`server hello`消息中选择一个算法并告知客户端。这样的机制允许双方根据性能和安全需求选择合适的压缩方法。
作者提到,他在硕士论文期间接触OpenSSL,并在后续的工作中深入使用,包括替换Globus中的OpenSSL底层算法,以及在PMI项目中处理属性证书编解码。他通过不断学习和实践,逐渐熟悉了OpenSSL的asn1模块,并在此过程中积累了丰富的经验,最终促成了这本书的撰写。
尽管作者在学术和职业道路上遇到了一些挫折,但他的热情和坚持推动了他继续学习和分享OpenSSL的知识。他在openssl.cn论坛上解答问题,这也成为他学习和提升自我的动力。
总结来说,这篇文章不仅提供了OpenSSL中压缩算法的使用细节,还展示了作者在实际工作中与OpenSSL交互的经验,对于学习和理解OpenSSL及其在实际项目中的应用有着宝贵的参考价值。
2021-12-04 上传
2017-07-25 上传
2023-08-21 上传
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
八亿中产
- 粉丝: 28
- 资源: 2万+
最新资源
- Python库 | seeq-0.46.8.166-py3-none-any.whl
- ScreenShot:对你的屏幕进行屏幕截图-matlab开发
- 行业分类-设备装置-不同移动终端的双字节字符数据备份及转换方法.zip
- Bunnings代码技能挑战
- kishanteli.github.io:投资组合网站
- Coolorus v2.5.15 WinMac.zip
- Cinder-Osc:基于liblo的Cinder的Osc块
- opencv+python 人脸识别的xml文件
- 2017-2021年南京理工大学620公共管理考研真题
- rosDSFASF sdic彻底的士大夫
- serialTerminal.com:基于浏览器的串行终端。没有插件。香草javascript
- 微积分 2:微积分 2 示例的实时编辑器解决方案-matlab开发
- next.js-amp-story
- 学习:学习项目存储库
- Malware_Detection_ANFIS
- html5手机端信息筛选条件特效代码