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