[网络编程]Win32 Socket+OpenSSL实例

本文介绍了如何在Win32环境下利用Socket结合OpenSSL库进行网络编程,包括服务器和客户端的编写步骤。OpenSSL不仅提供SSL功能,还支持加密、数字证书等多种功能,并且拥有命令行工具,方便进行服务器和客户端的测试。
摘要由CSDN通过智能技术生成

OpenSSL

openSSL 不仅仅是 SSL。它可以实现消息摘要、文件的加密和解密、数字证书、数字签名和随机数字。关于 OpenSSL 库的内容非常多,远不是一篇文章可以容纳的。

OpenSSL 不只是 API,它还是一个命令行工具。命令行工具可以完成与 API 同样的工作,而且更进一步,可以测试 SSL 服务器和客户机。

服务器编写步骤


源码:新建win32空项目SSL_Server
//SSL_Server.cpp
#include <iostream>
#include <winsock2.h>

#include <openssl/rsa.h>       /* SSLeay stuff */
#include <openssl/crypto.h>
#include <openssl/x509.h>
#include <openssl/pem.h>
#include <openssl/ssl.h>
#include <openssl/err.h>

// #privatekey.pem
// cmd:  ..\openssl-1.0.1e\bin> openssl genrsa -out privatekey.pem 2048  --生成的是空密码
// #cacert.pem
// cmd: ..\openssl-1.0.1e\bin> openssl req -new -x509 -key privatekey.pem -out cacert.pem -days 1095 -config ..\ssl\openssl.cnf 
#define CACERT   "E:\\ReferData\\OpenSSL\\openssl-1.0.1e\\bin\\cacert.pem"    
#define PRIKEY     "E:\\ReferData\\OpenSSL\\openssl-1.0.1e\\bin\\privatekey.pem" 
#define PRIKEY_CODE  "women123"  //----要与生成密钥一致
#define MAXBUF 1024
#define DEFPORT 7838
#pragma comment( lib, "ws2_32.lib" )
#pragma comment( lib, "libeay32.lib" )
#pragma comment( lib, "ssleay32.lib" )

/************关于本文档********************************************
*filename: ssl-server.c
*purpose: 演示利用 OpenSSL 库进行基于 IP层的 SSL 加密通讯的方法,这是服务器端例子
*wrote by: zhoulifa(zhoulifa@163.com) 周立发(http://zhoulifa.bokee.com)
Linux爱好者 Linux知识传播者 SOHO族 开发者 
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值