Emule使用的几个开源库介绍 (网上搜集整理)

 

一、
ID3

id3lib是一个开放源码的操纵ID3v1/v1.1和ID3v2标签的软件库。主要是获取
MP3
文件的信息,包括

页眉和ID3标签

 

二、ZLib库

zlib是
一套通用目的的压缩库
,即可以对信息进行压缩的一类算法

它通过一种

压缩格式zlib(具体细节看http://www.ietf.org/rfc/rfc1950.txt
),实现数据的压缩。zlib库实现了对这种压缩

文件格式的读取。

其次,如果大家想了解一些具体的细节,可以查阅相关文档,这两个网站

http://www.gzip.org/zlib/

http://gnuwin32.sourceforge.net/gackages/zlib.htm

都有详细的介绍,不过我觉得zlib.h中

注释写得已经很清楚了。

源文档 <http://topic.csdn.net/u/20080515/14/162f215c-1c75-42ae-bdb9-8005a82a4602.html
>

 

三、ResizableLib

这是一个控制对话框大小自动窗放的基类库,即主对话框的大小变了,则在主对话框上建立的子对话框的大小和位置都需要调整,只需这些子对话框建立在Resizable类基础则很多工作就已经完成了。

 

四、libpng

libpng
库.这些库用于读写png格式的图像文件.

源文档 <http://www.admin999.com/servers/linux/200703/73925.html
>

 

五、cximage

CxImage类库是一个优秀的图像处理类库,完全免费,开源,作者完全公开了源代码,可以进一步学习各种图形编码、解码技术。CxImage库是一个可以用于MFC的C++类,可以用于读取、存储、绘制和转换多种格式的图像文件,比如BMP、JPEG、GIF、PNG、TIFF、MNG、ICO、PCX、TGA、WMF、WBMP、JBG、J2K等。可以实现图像文件的类型转换,也可以实现在内存中的图像数据的类型转换。

CxImage的作者是Davide
Pizzolato,他的主页是http://www.xdp.it/
,提供下载。也可以到开源代码网站codeproject去下载它的源文件,网址是http://www.codeproject.com/

编译CxImage类库有两种方法:一种方法是将cximage.lib与其它图像格式库分开编译,在使用时需要指明所有要使用的图像格式的库德路径;具体过程:单击VC6.0的Build/Batch
Build菜单命令,在Project Configurations列表中只选择所有项目的Win32
Release版本,再单击Build按钮即可,编译完成后将每个项目文件夹下的Release文件夹的库文件复制出来使用。另一种方法是将所需使用的图像格式库都包含到cximage.lib中,使用时只需要指明cximage.lib库的路径即可。具体过程:单击VC6.0中Project
/ Dependencies菜单命令,在Select project to modify下拉列表中选择CxImage项,再在Dependent on the
following project(s)列表框中选择需要一起编译的项目。单击Batch Build菜单中,只选择CxImage-Win32
Release项,编译即可。

程序文件中增加写上:

源文档 <http://hi.baidu.com/xiexianyu/blog/item/fa5f2030eb11aa93a9018ec3.html
>

六、crypto51

Crypto++库的开发者是Wei
Dai,非常好,标准的C++模板,不论是学习还是从应用的角度,都是难得的教材。算是提供一个给大家多学习和交流的机会

Crypto++
库是一个用
c++
编写的密码类库,是一个自由软件。
Crypto++™
Library 5.1


2003

3

22
日发布,是目前最高的版本,该版本加入了除了作者
Wei Dai
以外的另外一些作者的代码重新包装成类,类库里主要包含下列的内容:

1

 
 
用抽象类定义
API
类的继承层次

2

 
 
高级加密标准
AES

Advanced
Encryption Standard


 
Rijndael

AES
候选算法:
RC6, MARS,
Twofish, Serpent, CAST-256

1997

4

15
日美国国家标准技术研究所
NIST
发起征集高级加密标准
AES
算法的活动,目的是为确定一个安全性能更好的分组密码算法用于取代
DES

AES
的基本要求是比三重
DES
快并且至少与
DES
一样安全
,
分组长度为
128

,
密钥长度为
128

,192
位或
256

.2001

11

26

,NIST
正式公布高级加密标准
AES, AES
的安全性能是良好的
,
经过多年来的分析和测试
,
至今没有发现
AES
的明显缺点
,
也没有找到明显的安全漏洞
. AES
能够抵抗目前已知的各种攻击方法的攻击。

3

 
 
对称分组密码:
IDEA, DES,
Triple-DES (DES-EDE2 and DES-EDE3), DESX (DES-XEX3), RC2, RC5, Blowfish,
Diamond2, TEA, SAFER, 3-WAY, GOST, SHARK, CAST-128, Square, Skipjack

分组密码又称为秘密钥密码或对称密码。利用分组密码对明文进行加密时,首先需要对明文进行分组,每组的长度都相同,然后对每组明文分别加密得到等长的密文,分组密码的特点是加密密钥与解密密钥相同。分组密码的安全性应该主要依赖于密钥,而不依赖于对加密算法和解密算法的保密。因此,分组密码的加密和解密算法可以公开。

4

  
一般的密码模式:
ECB, CBC, CBC ciphertext stealing (CTS), CFB, OFB, counter mode
(CTR) 

电子密本(
ECB
),
 
密码
分组链接
(CBC)
,输出反馈
(OFB)
和密文反馈
(CFB)

5

  
序列密码:
Panama, ARC4, SEAL, WAKE, WAKE-OFB, BlumBlumShub

序列密码可以认为是起源于
20
世纪
20
年代的
Vernam
体系,当
Vernam
体制中的密钥序列是随机的
(0,1)
时,他就是“一次一密“密码体制。
Shannon
已经证明了“一次一密“密码体制在理论上是不可破译的。由于随机的密钥序列产生、存储以及分配等方面存在一定的困难,
Vernam
体制在当时并没有得到广泛的应用。随着微电子技术和数学理论的发展与完善,基于伪随机序列的序列密码得到了长足的发展和应用。在序列密码中,加密和解密所用的密钥都是伪随机序列,伪随机序列的产生比较容易并且有比较成熟的数学理论工具,目前,序列密码是
 
世界各国的军事和外交等领域中使用的主要密码体制之一。

6

 
 
公钥密码
: RSA, DSA,
ElGamal, Nyberg-Rueppel (NR), Rabin, Rabin-Williams (RW), LUC, LUCELG, DLIES
(variants of DHAES), ESIGN

在公钥密码体制中加秘密钥和解密密钥是不一样的,加密密钥可以公开传播而不危及密码体制的安全性。

RSA
公钥密码体制的安全性是基于大整数的素分解问题的难解性,

7
、公钥密码系统补丁:
PKCS#1 v2.0, OAEP, PSSR, IEEE P1363 EMSA2

8
、密钥协商方案:
Diffie-Hellman (DH), Unified Diffie-Hellman (DH2),
Menezes-Qu-Vanstone (MQV), LUCDIF, XTR-DH

9
、椭圆曲线密码:
ECDSA, ECNR, ECIES, ECDH, ECMQV

9

  
单向
hash
函数:

hash
函数是一种将一种任意长度的消息
(message)
压缩为某一固定长度的消息摘要
(message digest)
的函数。
hash
函数可以用于数字签名和消息的完整性检测。

SHA-1,:

安全
hash
算法
SHA

 MD2, MD4, MD5, HAVAL, RIPEMD-160, Tiger, SHA-2 (SHA-256,
SHA-384, and SHA-512), Panama

11
、消息认证码
(MAC)

MD5-MAC, HMAC, XOR-MAC, CBC-MAC, DMAC

12
、基于密码结构的
Hash
函数:
Luby-Rackoff,
MDC

13
、伪随机数发生器
(PRNG): ANSI X9.17 appendix C, PGP's
RandPool

14

password based key derivation functions

PBKDF1 and PBKDF2 from PKCS #5

15
、压缩和解压算法

16
、大整数和多项式快速精确算法

17
、有限范围内的算法包括
GF(p)

GF(2^n)

18
、素数的产生和验证

等等。

crypto51介绍文档 <http://www.kaiyuan8.org/Article/PdCjVskOgkieLCyjxDMO.aspx
>

 

 

 

作者:bottlebox 发表于2010-2-24 14:29:00 原文链接
阅读:239 评论:0 查看评论

原文链接: https://www.cnblogs.com/bottlebox/archive/2010/02/24/2216658.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍

    Emule使用的几个开源库介绍 (网上搜集整理)

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/8361

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年2月6日 下午7:17
下一篇 2023年2月6日 下午7:18

相关推荐