VS2008下LibTomCrypt 1.17的编译和使用
2013-12-08 15:51
369 查看
文章出处:/article/3709381.html
具体步骤如下:
(1) 下载tomcrypt
tomcrypt 1.17 VS2008+intel C++工程
http://d.download.csdn.net/down/1783339/jackyjkchen
crypt-1.17.rar (11.03 MB) 源代码
http://www.hackchina.com/cont/118501
Tomcrypt 1.16 and manual
http://download.csdn.net/source/981828
(2) 编译tomcrypt
用VS2008编译tomcrypt 1.17 (第一个下载),然后生成 crypt_s.dll 和 crypt_s.lib 文件。
(3) 在自己的工程中使用tomcrypt
在我们自己的工程中,将 crypt_s.dll 和 crypt_s.lib 文件 分别添加到我们的工程中:
1) 将crypt_s.dll文件直接放在debug目录下,即和工程所生成的可执行文件放在一起。
2) 将crypt_s.lib加入到工程中,方法有三种,这里使用通过代码的方式加入。
3) 将所需要的头文件包含到当前工程中,工程上右键->属性->配置属性->C/C++->附加包含目录
4) 修改编译器设置,工程上右键->属性->配置属性->C/C++->代码生成->运行库,设置为:多线程 DLL (/MD),否则会提示:编译可以通过,但是运行报“找不到MSVCR90.dll”的错误。
(4) 测试:AES加密
参考:
调用DLL有两种方法:静态调用和动态调用
http://www.cnblogs.com/c1230v/articles/1401448.html
找不到MSVCR90.dll、Debug vs Release及cppLapack
http://hi.baidu.com/wpzhao/blog/item/72dc08f77ce9be2a730eeca7.html
具体步骤如下:
(1) 下载tomcrypt
tomcrypt 1.17 VS2008+intel C++工程
http://d.download.csdn.net/down/1783339/jackyjkchen
crypt-1.17.rar (11.03 MB) 源代码
http://www.hackchina.com/cont/118501
Tomcrypt 1.16 and manual
http://download.csdn.net/source/981828
(2) 编译tomcrypt
用VS2008编译tomcrypt 1.17 (第一个下载),然后生成 crypt_s.dll 和 crypt_s.lib 文件。
(3) 在自己的工程中使用tomcrypt
在我们自己的工程中,将 crypt_s.dll 和 crypt_s.lib 文件 分别添加到我们的工程中:
1) 将crypt_s.dll文件直接放在debug目录下,即和工程所生成的可执行文件放在一起。
2) 将crypt_s.lib加入到工程中,方法有三种,这里使用通过代码的方式加入。
3) 将所需要的头文件包含到当前工程中,工程上右键->属性->配置属性->C/C++->附加包含目录
4) 修改编译器设置,工程上右键->属性->配置属性->C/C++->代码生成->运行库,设置为:多线程 DLL (/MD),否则会提示:编译可以通过,但是运行报“找不到MSVCR90.dll”的错误。
(4) 测试:AES加密
/* 下面的程序实现的功能: 将字符串c1用AES方法加密放在c2中,再解密放在c3中,密钥是myKey */ #include "tomcrypt.h" #pragma comment (lib,"crypt_s.lib") int main(int argc, char* argv[]) { unsigned char myKey[32]= "12345"; // 加密密钥 symmetric_key skey; // 加密状态 aes_setup(myKey, 32, 0, &skey); // 加密前初始化状态(密钥,密钥长度,迭代次数(0: 使用推荐值),加密状态) unsigned char c1[32]="csdn"; // 需要加密的字符串长度任意 unsigned char c2[32]; // 输出长度>= 输入长度,分段长度的倍数(这里就是16的倍数) // 分段加密,每段长度为16 (一般不可能只有2段,自己写循环) aes_ecb_encrypt(&c1[0], &c2[0],&skey); aes_ecb_encrypt(&c1[16], &c2[16],&skey); unsigned char c3[32]; aes_setup(myKey, 32, 0, &skey); // 解密前初始化状态,其实和加密的状态是完全一致的 // 分段解密 aes_ecb_decrypt(&c2[0], &c3[0],&skey); aes_ecb_decrypt(&c2[16], &c3[16],&skey); return 0; }
参考:
调用DLL有两种方法:静态调用和动态调用
http://www.cnblogs.com/c1230v/articles/1401448.html
找不到MSVCR90.dll、Debug vs Release及cppLapack
http://hi.baidu.com/wpzhao/blog/item/72dc08f77ce9be2a730eeca7.html
相关文章推荐
- VS2008下LibTomCrypt 1.17的编译和使用
- 如何用vs2015编译与使用libtomcrypt
- 使用libtomcrypt时候出现无法找到rijndael_enc_desc问题解决方法
- 使用Libtomcrypt RSA/ECC等加密算法到项目中
- 使用 libTomCrypt 实现 AES、HMAC、HKDF 运算
- Lib Dll在VS2008下的编译和使用-持续更新,欢迎拍砖
- LibTomCrypt在cb中编译的注意事项
- libtomcrypt使用
- VC2005编译SQLite,生成WINCE上使用的DLL和Lib
- VC2005编译SQLite,生成WINCE上使用的DLL和Lib
- 使用VS2008编译EDK2源码并调试
- NTL库的介绍与vs2012上的编译使用,及NTL.lib编译不成功的错误
- 既使用maven编译,又使用lib下的Jar包
- vs2008编译时出现问题解决方法:MSVCRTD.lib(crtexew.obj) : error LNK2019: unresolved external symbol _WinMain@16 referenced in function ___tma
- Opencv2.0 lib和dll的编译获取过程 以及 vs2005,vs2008配置过程
- VS2008 warning C4627 在查找预编译头使用时跳过 解决方案
- 既使用maven编译,又使用lib下的Jar包
- VC2005编译SQLite 生成WINCE上使用的DLL和Lib
- 在vs2008下使用cygwin(5):i686-pc-cygwin/newlib/libc/stdlib/Makefile分析