文章出处:http://blog.csdn.net/delphiwcdj/article/details/6298820

具体步骤如下:

(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[]= "";      // 加密密钥
symmetric_key skey;              // 加密状态 aes_setup(myKey, , , &skey);       
    // 加密前初始化状态(密钥,密钥长度,迭代次数(0: 使用推荐值),加密状态) unsigned char c1[]="csdn";         // 需要加密的字符串长度任意
unsigned char c2[];           
    // 输出长度>= 输入长度,分段长度的倍数(这里就是16的倍数) // 分段加密,每段长度为16 (一般不可能只有2段,自己写循环)
aes_ecb_encrypt(&c1[], &c2[],&skey);
aes_ecb_encrypt(&c1[], &c2[],&skey); unsigned char c3[];
aes_setup(myKey, , , &skey);      
    // 解密前初始化状态,其实和加密的状态是完全一致的 // 分段解密
aes_ecb_decrypt(&c2[], &c3[],&skey);
aes_ecb_decrypt(&c2[], &c3[],&skey);
return ;
}

参考: 
调用DLL有两种方法:静态调用和动态调用
http://www.cnblogs.com/c1230v/articles/1401448.html 
找不到MSVCR90.dll、Debug vs Release及cppLapack
http://hi.baidu.com/wpzhao/blog/item/72dc08f77ce9be2a730eeca7.html

https://blog.csdn.net/lan120576664/article/details/46045831

VS2008下LibTomCrypt 1.17的编译和使用《转》的更多相关文章

  1. Windows7+VS2008 下编译Subversion 1.8.3

    一.需要的软件包 1.python-2.7.5.msi  http://www.python.org/ 2.ActivePerl-5.8.8.822-MSWin32-x86-280952.msi  h ...

  2. linux(以ubuntu为例)下Android利用ant自动编译、修改配置文件、批量多渠道,打包生成apk文件

    原创,转载请注明:http://www.cnblogs.com/ycxyyzw/p/4555328.html  之前写过一篇<windows下Android利用ant自动编译.修改配置文件.批量 ...

  3. Windows下使用Visual Studio 2010编译ffmpeg全过程

    在visual studio 2010中调用ffmpeg http://blog.sina.com.cn/s/blog_4178f4bf01018wqh.html Windows下使用Visual S ...

  4. Linux下搭建 Cocos2d-x-2.1.4 编译环境

    [tonyfield 2013.09.04 ] 参考 Linux下搭建 Cocos2d-x-2.1.4 编译环境 导入 HelloCpp 例程 1. Java 入口 HelloCpp.java Hel ...

  5. 用C写一个web服务器(三) Linux下用GCC进行项目编译

    .container { margin-right: auto; margin-left: auto; padding-left: 15px; padding-right: 15px } .conta ...

  6. 配置 Windows 下的 nodejs C++ 模块编译环境 安装 node-gyp

    配置 Windows 下的 nodejs C++ 模块编译环境 根据 node-gyp 指示的 Windows 编译环境说明, 简单一句话就是 "Python + VC++ 编译环境&quo ...

  7. ubuntu16.04下笔记本自带摄像头编译运行PTAM

    ubuntu16.04下笔记本自带摄像头编译运行PTAM 转载请注明链接:https://i.cnblogs.com/EditPosts.aspx?postid=9014147 个人邮箱:feifan ...

  8. 联盛德 HLK-W806 (一): Ubuntu20.04下的开发环境配置, 编译和烧录说明

    目录 联盛德 HLK-W806 (一): Ubuntu20.04下的开发环境配置, 编译和烧录说明 联盛德 HLK-W806 (二): Win10下的开发环境配置, 编译和烧录说明 联盛德 HLK-W ...

  9. 联盛德 HLK-W806 (二): Win10下的开发环境配置, 编译和烧录说明

    目录 联盛德 HLK-W806 (一): Ubuntu20.04下的开发环境配置, 编译和烧录说明 联盛德 HLK-W806 (二): Win10下的开发环境配置, 编译和烧录说明 联盛德 HLK-W ...

随机推荐

  1. git小结-ms

    目录 1.git是什么 2.git怎么工作的 3.git常用命令 4.git提效工具 5.git的技术用语 1.git是什么 git是开源的分布式的版本控制系统,可以有效.高速地处理的项目版本管理.g ...

  2. spark 机器学习 随机森林 原理(一)

    1.什么是随机森林顾名思义,是用随机的方式建立一个森林,森林里面有很多的决策树组成,随机森林的每一棵决 策树之间是没有关联的.在得到森林之后,当有一个新的输入样本进入的时候,就让森林中的每一棵决策树分 ...

  3. Ceph FS 挂载

    Cephfs使用挂载方式有两种 1.使用linux kernel挂载 mount 2.使用ceph-fuse挂载. 1.下图为mount挂载 mount -t ceph 10.110.180.112: ...

  4. Linux之nginx负载均衡

    Nginx负载均衡概述 Web服务器,直接面向用户,往往要承载大量并发请求,单台服务器难以负荷,我使用多台WEB服务器组成集群,前端使用Nginx负载均衡,将请求分散的打到我们的后端服务器集群中,实现 ...

  5. 批处理引擎MapReduce编程模型

    批处理引擎MapReduce编程模型 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. MapReduce是一个经典的分布式批处理计算引擎,被广泛应用于搜索引擎索引构建,大规模数据处理 ...

  6. Python 中 plt 画柱状图和折线图

    1. 背景 Python在一些数据可视化的过程中需要使用 plt 函数画柱状图和折线图. 2. 导入 import matplotlib.pyplot as plt 3. 柱状图 array= np. ...

  7. 智能驾驶数据后处理分析利器—INTEWORK-VDA

            随着智能驾驶技术在新车上逐步普及,车辆研发阶段需要做大量的实车测试工作,当前的测试方式主要是路采实车数据后,按标准和法规进行测试场景提取和测试数据分析.调查显示绝大部分智能驾驶研发厂商 ...

  8. IDEA实用教程(七)—— IDEA的断点调试

    IDEA实用教程(七)-- IDEA的断点调试 23/100 发布文章 qq_41684621 六. IDEA的断点调试 打断点 在行号的右侧点击鼠标左键,出现红色圆形图标,说明已经被打上断点 Deb ...

  9. workerman——消息推送(web-msg-send)

    前言 说下场景,当后台将号码池的号码分配给指定客服的时候,需要给指定的客户推送一条消息告诉该客户,通讯录有新增数据. 步骤 下载 https://www.workerman.net/web-sende ...

  10. NISP二级笔记(二) 信息安全管理体系