- 92
- 0
- 约4.65万字
- 约 30页
- 2021-12-11 发布于河北
- 举报
Crypto++ 入门 - 安装
Crypto++ 是一个 C++ 编写的密码学类库。 读过 《过河卒》的朋友还记得作者的那个不愿意去
微软工作的儿子吗,就是 Crypto++ 的作者 Wei Dai 。
Crypto++ 是一个非常强大的密码学库,在密码学界很受欢迎,最初还是 Rivest(RSA 的 R) 门
下的一个博士姐姐把这个库介绍给我的。虽然网络上可以找到很多密码学相关的代码和库,
但是 Crypto++ 有其明显的优点。主要是功能全,统一性好。例如椭圆曲线加密算法和 AES
在 OpenSSL 的 crypto 库中就还没最终完成,而在 Crypto++ 中就支持的比较好。基本上密码
学中需要的主要功能都可以在里面找得到。 Crypto++ 是由标准的 C++ 写成的, 学习 C++ 、密
码学、网络安全都可以通过阅读 Crypto++ 的源代码得到启发和提高。
Crypto++ 的安装
首先到 上下载最新版本的源代码, 如果是 windows 版的,会得到一个 VC
的项目, 直接用 VC 打开就可以编译了。 这里建议大家使用最新版的 C++ 编译器, 因为诸如
VC6 的编译器是不支持 C++ 的标准的,很多符合 C++ 标准的代码不能编译通过。编译的时
间比较长,完成后会生成 cryptlib.lib 这个库文件。可以将 Crypto++ 源文件的目录命名为
cryptopp ,拷贝到编译器的 include 目录(例如: C:\VS.NET\VC7\include ),将 cryptlib.lib 文
件拷贝到编译器的 lib 目录。这样我们只需要说明链接 cryptlib.lib 即可。 例如在 VC7 中在项
目- 属性 -链接器 -命令行 - 附加选项中添加“ cryptlib.lib ”。
Hello World
现在写一个 hello world 程序看看能不能编译通过。
#include iostream
using namespace std;
#include cryptopp/aes.h
using namespace CryptoPP;
int main()
{
cout hello crypto++ endl;
cout Aes block size is AES::BLOCKSIZE endl;
return 0;
}
编译运行,一切 OK ,哈哈: D ,可以用了。
lib 和 dll 文件的区别和联系
.dll 是在你的程序运行的时候才连接的文件, 因此它是一种比较小的可执行文件格式, .dll
还有其他的文件格式如 .ocx 等,所有的 .dll 文件都是可执行。
.lib 是在你的程序编译连接的时候就连接的文件,因此你必须告知编译器连接的 lib 文件
在那里。一般来说,与动态连接文件相对比, lib 文件也被称为是静态连接库。当你把代码
编译成这几种格式的文件时,在以后他们就不可能再被更改。如果你想使用 lib 文件,就必
须:
1 包含一个对应的头文件告知编译器 lib 文件里面的具体内容
2 设置 lib 文件允许编译器去查找已经编译好的二进制代码
如果你想从你的代码分离一个 dll 文件出来代替静态连接库,仍然需要一个 lib 文件。这
个 lib 文件将被连接到程序告诉操作
您可能关注的文档
- 2015年上半年吉林省注册监理工程师合同管理:竣工试验程序试题.pdf
- 2015年上半年江苏省监理工程师《合同管理》:合同争议的解决试题.pdf
- 2015年上半年廉政风险防控评估工作总结.pdf
- 2015年上半年辽宁省监理工程师考试《合同管理》:合同担保试题.pdf
- 2015年上半年辽宁省资产评估师《资产评估》:功能性贬值考试题.pdf
- 2015年上半年青海省资产评估师《财务会计》:会计计量属性考试试卷.pdf
- 2015年上半年青海省资产评估师《资产评估》:审计对评估的需求试题.pdf
- 2015年上半年青海省资产评估师资产评估:审计对评估的需求考试试题.pdf
- 2015年上半年山东省监理工程师合同管理:确定中标人模拟试题.pdf
- 2015年上半年山西省临床医学检验技师检验科目三试题.pdf
原创力文档

文档评论(0)