Openssl是个为网络通信提供安全及数据完整性的一种安全协议,囊括了主要的密码算法、常用的密钥和证书封装管理功能以及SSL协议,并提供了丰富的应用程序供测试或其它目的使用。首先下载Openssl包:(http://www.openssl.org/),这是一个C语言类库包,在Windows下可以通过Perl对该类库包进行MakeBuild,产生libeay32、ssleay32的Lib以及Dll文件,具体操作详见:http://blogger.org.cn/blog/more.asp?name=OpenSSL&id=18972,通过编译产生这样一系列文件:

inc32里面放置C语言头文件。

1. 现在我要在Visual Studio 2010工程项目中使用到它,首先我要创建一个VC++.NET的项目,我这里创建了一个MFC应用程序:

在项目名称中点击“右键”,选择“属性”,从里面找到“VC++目录”:

找到两个目录选项:

其中包含目录指向你的Openssl的头文件的目录,库目录指向你的Lib、Dll所在的目录。

从这里新建目录来指向引导的目录:

然后切换到“链接器”-> “输入”:

在“附加依赖项”中,加入两个Lib文件:

这样就完成了静态库的引用。

2. 现在看下项目中怎么引用它(以SHA256算法为例):

  1. #include <openssl/sha.h>

方法展示

  1. // SHA256算法字符串加密
  2. void sha256(char* string, char outputBuffer[64])
  3. {
  4. unsigned char hash[SHA256_DIGEST_LENGTH];
  5. SHA256_CTX sha256;
  6. SHA256_Init(&sha256);
  7. SHA256_Update(&sha256, string, strlen(string));
  8. SHA256_Final(hash, &sha256);
  9. int i = 0;
  10. for(i = 0; i < SHA256_DIGEST_LENGTH; i++)
  11. {
  12. sprintf(outputBuffer + (i * 2), "%02x", hash[i]);
  13. }
  14. }

调用:

  1. static unsigned char buffer[64];
  2. sha256(signature, (char*)buffer);

由于Openssl包需要利用Perl进行编译形成Lib以及Dll文件,这里我附上已经制作好的文件,方便大家使用!

最新文章

  1. 【Python】[IO编程]文件读写,StringIO和BytesIO,操作文件和目录,序列化
  2. 如何用Java代码列出一个目录下所有的文件?
  3. guava学习--Function、Predicate
  4. Oracle 11g 的官方支持周期和时限
  5. Openstack的删除错误网桥,虚拟网络
  6. JS数组2(冒泡排列、数组里面查找数据)
  7. AJAX中文乱码PHP完美解决(IE和Firefox兼容)
  8. android一个页面上多个listview
  9. 微信内置浏览器私有接口WeixinJSBridge介绍(转)
  10. 并发系列(6)之 ThreadPoolExecutor 详解
  11. ECMA Script 6_symbol(symbol.iterator) 新接口_iterator接口
  12. java 删除整数元素集合中的元素
  13. mysql存储emoji问题
  14. Js强制转换
  15. 使用MSF生成shellcode
  16. HDU 3333 Turing Tree(树状数组/主席树)
  17. php yii 命令
  18. Yum Priorities
  19. Spring MVC 支持的原生API参数
  20. UISwitch的常见属性

热门文章

  1. ab-如何提交post请求
  2. Thrift之代码生成器Compiler原理及源码详细解析2
  3. bzoj 2194 快速傅立叶之二 —— FFT
  4. bzoj2257瓶子与燃料——最大公约数
  5. 【旧文章搬运】加载PE文件时IAT的填充时机
  6. json : json数据解析(一)
  7. WebBrowser内嵌页面的跨域调用问题
  8. 【221】◀▶ IDL GUI 函数说明
  9. DNS与BIND介绍
  10. Math对象产生随机数一个小应用