VC++环境OpenSSL简单编程入门

Posted bcbobo21cn

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了VC++环境OpenSSL简单编程入门相关的知识,希望对你有一定的参考价值。

OpenSSL是一个开放源代码的软件库包,应用程序可以使用这个包来进行安全通信,避免窃听,同时确认另一端连接者的身份。
SSL是Secure Sockets Layer(安全套接层协议)的缩写,可以在Internet上提供秘密性传输。

下载 Win32OpenSSL-1_0_1.exe 安装;

开始安装;

完成;似乎是提示要支付10美元;

在VC6添加如下目录;从 工具-选项 菜单调出选项对话框;

库目录;

然后来编写一个大数乘法的程序看一下;

大数相乘(Multiplication algorithm),就是指数字比较大,相乘的结果超出了基本类型的表示范围,这样的数不能够直接做乘法运算。在做加密解密的程序时会碰到;

如果它不提供库的话,自己做需要算法;

新建一个控制台工程;

// dash.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include <openssl/bn.h>
#include <string.h>
#include <openssl/bio.h>
#include <openssl/applink.c>

#pragma comment(lib,"libeay32.lib")
#pragma comment(lib,"ssleay32.lib")


int main()
{

       BIGNUM *a,*b,*add;
       BIO *out;
       char c[20],d[20];
       int ret;
       a=BN_new();
       strcpy(c,"32");
       ret=BN_hex2bn(&a,c);
       b=BN_new();
       strcpy(d,"100");
       ret=BN_hex2bn(&b,d);
       out=BIO_new(BIO_s_file());
       ret=BIO_set_fp(out,stdout,BIO_NOCLOSE);
       add=BN_new();
       ret=BN_add(add,a,b);

       if(ret!=1)
       {
              printf("err.\\n");
              return -1;
       }

       BIO_puts(out,"bn 0x32 + 0x100 = 0x");
       BN_print(out,add);
       BIO_puts(out,"\\n");
       BN_free(a);
       BN_free(b);
       BN_free(add);
       BIO_free(out);

       return 0;
}

第一次运行;出错如下;

此时未包含 #include <openssl/applink.c> ;

添加上对applink.c的包含,就对了;

applink.c 在如下目录;

 

以上是关于VC++环境OpenSSL简单编程入门的主要内容,如果未能解决你的问题,请参考以下文章

Windows XP SP3 VC6环境下成功编译openssl-0.9.8zh

求通俗解释API我刚入门 求简单易懂

解决OpenSSL 在VC2015下链接报错的问题。

VC++截图编程:如何能完整地截图?要求是能够截取层级窗口的方法。

初学c++,vc++6.0必备!

图解VC++6.0和ACE 5.4 开发入门