openssl的功能十分强大,好比能够实现无缝的io过滤,但是实现安全套接字,能够实现数据加密解 密等等,其实openssl的证书认证功能能够实现C/S模式程序的版本控制功能,最重要的就是使用在ssl握手的时候会传递证书,而证书中不少字段是可 以自定义的,服务器能够经过查看客户端的证书获得客户端的信息,反之客户端也能够经过服务器的证书获得服务器的信息,不少人会认为这有点复杂了,实现信息 互通大可没必要使用ssl握手,标准套接字就能够,然而使用ssl的目的就是使得通讯更加保密,或者就是使用ssl的清晰的过程,openssl的握手过程 十分清晰,为咱们考虑了不少咱们可能考虑不到的事情,并且openssl的api很是丰富,咱们能够在很安全很稳定的环境下轻松获得很充足的信息,何乐而 不为!api
最简单的版本控制就是在控制端使用一个全局的变量,这个变量能够是int类型,它的每个位表明一个功能,在程序初始化的时候服务器和做为控制端的客户端 进行ssl握手,期间服务器会将证书传递给控制端,控制端能够根据服务器证书的内容获得这个全局的版本控制变量,而后解析这个变量获得该程序可使用的功 能,或者过程反过来也能够,就是客户端将证书传递给服务器,服务器经过验证客户端的证书来肯定提供哪些服务,亦或者服务器和客户端进行双向验证。如下就是 一个实际的例子,首先看一下服务器的粗略代码:安全
#include "StdAfx.h"服务器
#include "Server_Verify.h"ide
DWORD WINAPI VerifyProc( LPVOID lpParam ) ;加密
int IsValidCert( char * strCertPath )版本控制