VC2008下编译使用OpenSSL
本文假定 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相关推荐
- Linux下编译安装openssl
(1) 下载openssl压缩包.在 http://www.openssl.org/source/ 选择合适版本的压缩包,一般选择标记有"[LATEST]"的包,假设其link为 ...
- mysql 国密_Centos7 编译安装 Openssl 1.1.1 支持国密标准-1002682
OpenSSL项目新版本增加了中国SM2/SM3/SM4算法的支持: SM2椭圆曲线: https://github.com/openssl/openssl/pull/4793 SM3哈希摘要: ht ...
- VC2008下使用OpenSSL 1.0.0g(免编译)
摘要: 运行时库附加依赖项多线程(/MT)libeay32MT.lib ssleay32MT.lib多线程调试(/MTd)libeay32MTd.lib ssleay32... id="cp ...
- 如何在Windows下编译OpenSSL?
OpenSSL是一个开源的第三方库,它实现了SSL(Secure SocketLayer)和TLS(Transport Layer Security)协议,被广泛企业应用所采用.对于一般的开发人 ...
- windows下编译openssl
1. 下载ActivePerl 链接地址:ActivePerl 一路Next完成安装. 在终端中执行命令perl -v,确认安装成功 2. 环境变量 将VS的路径写入环境变量PATH: D:\Prog ...
- 如何在Windows下编译OpenSSL
OpenSSL是一个开源的第三方库,它实现了SSL(Secure SocketLayer)和TLS(Transport Layer Security)协议,被广泛企业应用所采用.对于一般的开发人员而言 ...
- C++安全方向openssl(一):1.2 Linux下编译openssl3.0并编写测试项目
代码: #include <stdio.h> #include <openssl/rand.h> #include <iostream> #include < ...
- 在Windows下编译OpenSSL(VS2005)【转】
如何在Windows下编译OpenSSL (Vs2005使用Vc8的cl编译器) 1.安装ActivePerl//初始化的时候,需要用到perl解释器 2.使用VS2005下的Visual Studi ...
- Windows下编译OpenSSL(使用VS2013或VS2008)
转自https://www.cnblogs.com/findumars/p/4299976.html 简述 OpenSSL是一个开源的第三方库,它实现了SSL(Secure SocketLayer)和 ...
最新文章
- usb for android,libusb
- JSON数据的HTTP Header应该怎么标记?
- 智能车竞赛技术报告 | 智能车视觉 - 上海大学 - 猫耳麻花
- CodeForces798cMike and gcd problem
- 『教程』Batch Normalization 层介绍
- 中input怎么接受后台传值_[vue3]如何在vue3中优雅地使用vmodel?
- mysql数据库(10):数据 备份
- stm32f1的存储器与复位
- screen 命令示例:管理多个终端会话
- 监听input框值得改变
- 常用数据库的字段类型及大小
- OSChina 周六乱弹 ——从心动,到原谅
- Filter(过滤器)Listene(监听器)笔记
- 栈的特点及其基本操作
- C++ 实现小写金额转化为大写金额
- c语言void delay是什么意思,delay什么意思
- 删库跑路(错误0x80070091:目录不是空的)该如何解决???还是别解决了。。。
- 定积分的应用之 柱壳法求旋转体体积
- 第五章(1.4)深度学习——神经网络架构和原理
- Nagios的插件-nsca