资源预览内容
第1页 / 共16页
第2页 / 共16页
第3页 / 共16页
第4页 / 共16页
第5页 / 共16页
第6页 / 共16页
第7页 / 共16页
第8页 / 共16页
第9页 / 共16页
第10页 / 共16页
亲,该文档总共16页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
Crypto+入门- 安装Crypto+是一个 C+编写的密码学类库。读过过河卒的朋友还记得作者的那个不愿意去微软工作的儿子吗,就是 Crypto+的作者Wei Dai。Crypto+是一个非常强大的密码学库,在密码学界很受欢迎,最初还是 Rivest(RSA 的 R)门下的一个博士姐姐把这个库介绍给我的。虽然网络上可以找到很多密码学相关的代码和库,但是 Crypto+有其明显的优点。主要是功能全,统一性好。例如椭圆曲线加密算法和 AES 在 OpenSSL 的 crypto 库中就还没最终完成,而在 Crypto+中就支持的比较好。基本上密码学中需要的主要功能都可以在里面找得到。Crypto+是由标准的 C+写成的,学习 C+、密码学、网络安全都可以通过阅读 Crypto+的源代码得到启发和提高。Crypto+的安装:首先到 www.cryptopp.com 上下载最新版本的源代码,如果是windows 版的,会得到一个 VC 的项目,直接用 VC 打开就可以编译了。这里建议大家使用最新版的 C+编译器,因为诸如 VC6 的编译器是不支持 C+的标准的,很多符合 C+标准的代码不能编译通过。编译的时间比较长,完成后会生成 cryptlib.lib 这个库文件。可以将 Crypto+源文件的目录命名为 cryptopp,拷贝到编译器的include 目录(例如:C:VS.NETVC7include) ,将 cryptlib.lib文件拷贝到编译器的 lib 目录。这样我们只需要说明链接cryptlib.lib 即可。例如在 VC7 中在项目-属性-链接器-命令行-附加选项中添加“cryptlib.lib” 。Hello World现在写一个 hello world 程序看看能不能编译通过。#include using namespace std;#include using namespace CryptoPP;int main() cout using namespace std;/这个是我们刚才 建立 Crypto+ SDKusing namespace CryptoPP;/这个是我们刚才 编译链接生成 cryptlib.lib#pragma comment(lib, cryptlib.lib)/-/ 函数声明/-/生成 RSA 密钥对的函数声明void GenerateRSAKey(unsigned int keyLength, const char *privFilename, const char *pubFilename, const char *seed);/RSA 加密函数string RSAEncryptString(const char *pubFilename, const char *seed, const char *message);/RSA 解密函数string RSADecryptString(const char *privFilename, const char *ciphertext);/全局随机数池RandomPool & GlobalRNG();/-/ 主程序/-void main()char priKey128 = 0;char pubKey128 = 0;char seed1024 = 0;/ 生成 RSA 密钥对strcpy(priKey, pri); / 生成的私钥文件strcpy(pubKey, pub); / 生成的公钥文件strcpy(seed, seed); /生成种子文件GenerateRSAKey(1024, priKey, pubKey, seed);/ RSA 加解密char message1024 = 0;cout,class std:allocator :basic_string,class std:allocator (char const *) (?0?$basic_stringDU?$char_traitsDstdV?$allocatorD2stdQAEPBDZ) already defined in msvcprtd.lib(MSVCP80D.dll)说在 msvcprtd.lib 和 MSVCRTD.lib 中已经定义过。Crypto+使用经验总结:Crypto+是一套关于应用密码学的类库,提供了散列(MD5、SHA) 、数据加密(DES、AES) 、数字签名(RSA、椭圆曲线签名算法ECDSA)等很多有用的算法,算法安全性已经通过 FIPS 140-2(http:/csrc.nist.gov/cryptval/140-2.htm) 验证。
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号