本文假定 openssl 已经编译成功,讨论如何在 VC++ 2008 中调用 openssl 的库函数。

  • 创建一个项目,名为 RSA。
  • 往项目中添加代码
  • 添加头文件路径    菜单中的 ”项目“ ==> RSA 属性 ==> C++ ==> 附加包含目录 在其中添加 openssl 头文件所在路径
  • 添加库文件所在路径
    菜单中的 ”项目“ ==> RSA 属性 ==> 链接器 ==> 常规 ==>附加库目录
    在其中添加 openssl 的库目录
  • 下面是检查OpenSSL环境是否已经配置好的测试源码
    View Code

     1 #include <string>
     2 #include <iostream>
     3 #include <openssl/md5.h>
     4 #pragma comment(lib, "libeay32.lib")
     5 #pragma comment(lib, "ssleay32.lib")
     6 int _tmain(int argc, _TCHAR* argv[])
     7 {
     8     std::string str = "1234";
     9     std::string strMd5 = "";
    10     unsigned char md[MD5_DIGEST_LENGTH];
    11     char tmp[3] = {0};
    12     MD5((const unsigned char*)str.c_str(), str.size(), md);
    13     for (int i = 0; i < MD5_DIGEST_LENGTH; i++)
    14     {
    15         sprintf_s(tmp, "%02X", md[i]);
    16         strMd5.append(tmp);
    17     }
    18     std::cout<<strMd5<<std::endl;
    19     return 0;
    20 }
    
    列出证书的几种使用方式

  • 列出证书的几种使用方式
  • 使用方式1:
    发送者发送[1]证书(只带公钥)[2]签名过的数据(相当于“文摘”)[3]未签名过的数据(明文)[4]DN
    给接收者
    接收者
    [1]数据完整性检查
    [1-1]对明文进行签名,生成本地签名(相当于“文摘”)
    [1-2]本地签名,同远程签名过的数据相比较,如果一致,说明数据完整
    [2]发送者真实性检查
    [2-1]从远程签名过的数据里提取证书
    [2-2]两个证书的某个信息和DN中的信息相比较是否一致,如果一致,说明发送者是真实的。

    使用方式2:
    发送者发送[1]证书(只带公钥) [2]密文 [3]明文
    给接收者
    接收者[1]验证证书合法
    [2]用证书中的公钥对密文解码
    (私钥只有发送者知道,只有发送者才能编码,保证发送者的真实性。)
    [3]解码后的明文,和发送过来的明文相比较
    验证是否数据被篡改过,如果没有,验证成功。

转载于:https://www.cnblogs.com/ZhouL3777/archive/2012/10/26/2740940.html

VC2008下编译使用OpenSSL相关推荐

  1. Linux下编译安装openssl

    (1) 下载openssl压缩包.在 http://www.openssl.org/source/ 选择合适版本的压缩包,一般选择标记有"[LATEST]"的包,假设其link为  ...

  2. mysql 国密_Centos7 编译安装 Openssl 1.1.1 支持国密标准-1002682

    OpenSSL项目新版本增加了中国SM2/SM3/SM4算法的支持: SM2椭圆曲线: https://github.com/openssl/openssl/pull/4793 SM3哈希摘要: ht ...

  3. VC2008下使用OpenSSL 1.0.0g(免编译)

    摘要: 运行时库附加依赖项多线程(/MT)libeay32MT.lib ssleay32MT.lib多线程调试(/MTd)libeay32MTd.lib ssleay32... id="cp ...

  4. 如何在Windows下编译OpenSSL?

     OpenSSL是一个开源的第三方库,它实现了SSL(Secure SocketLayer)和TLS(Transport Layer Security)协议,被广泛企业应用所采用.对于一般的开发人 ...

  5. windows下编译openssl

    1. 下载ActivePerl 链接地址:ActivePerl 一路Next完成安装. 在终端中执行命令perl -v,确认安装成功 2. 环境变量 将VS的路径写入环境变量PATH: D:\Prog ...

  6. 如何在Windows下编译OpenSSL

    OpenSSL是一个开源的第三方库,它实现了SSL(Secure SocketLayer)和TLS(Transport Layer Security)协议,被广泛企业应用所采用.对于一般的开发人员而言 ...

  7. C++安全方向openssl(一):1.2 Linux下编译openssl3.0并编写测试项目

    代码: #include <stdio.h> #include <openssl/rand.h> #include <iostream> #include < ...

  8. 在Windows下编译OpenSSL(VS2005)【转】

    如何在Windows下编译OpenSSL (Vs2005使用Vc8的cl编译器) 1.安装ActivePerl//初始化的时候,需要用到perl解释器 2.使用VS2005下的Visual Studi ...

  9. Windows下编译OpenSSL(使用VS2013或VS2008)

    转自https://www.cnblogs.com/findumars/p/4299976.html 简述 OpenSSL是一个开源的第三方库,它实现了SSL(Secure SocketLayer)和 ...

最新文章

  1. usb for android,libusb
  2. JSON数据的HTTP Header应该怎么标记?
  3. 智能车竞赛技术报告 | 智能车视觉 - 上海大学 - 猫耳麻花
  4. CodeForces798cMike and gcd problem
  5. 『教程』Batch Normalization 层介绍
  6. 中input怎么接受后台传值_[vue3]如何在vue3中优雅地使用vmodel?
  7. mysql数据库(10):数据 备份
  8. stm32f1的存储器与复位
  9. screen 命令示例:管理多个终端会话
  10. 监听input框值得改变
  11. 常用数据库的字段类型及大小
  12. OSChina 周六乱弹 ——从心动,到原谅
  13. Filter(过滤器)Listene(监听器)笔记
  14. 栈的特点及其基本操作
  15. C++ 实现小写金额转化为大写金额
  16. c语言void delay是什么意思,delay什么意思
  17. 删库跑路(错误0x80070091:目录不是空的)该如何解决???还是别解决了。。。
  18. 定积分的应用之 柱壳法求旋转体体积
  19. 第五章(1.4)深度学习——神经网络架构和原理
  20. Nagios的插件-nsca

热门文章

  1. 关于log4net使用中遇到的错误
  2. 修改域名dns服务器,新网互联域名如何修改DNS设置方法
  3. python学习第一天 -----2019年4月15日
  4. GoCD 19.2.0 发布,ThoughtWorks 的持续集成引擎
  5. 理解Docker——深入引擎室
  6. C语言程序设计第一节课作业
  7. user-select介绍
  8. 断网与黑客无关 我来抖一抖暴风那点见不得人的猫腻
  9. VSS2005下载地址
  10. while循环,递进,linux按行读入并按数组存储