欢迎来到天天文库
浏览记录
ID:50454461
大小:216.71 KB
页数:5页
时间:2020-03-06
《openssl 编程入门(含完整示例).pdf》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、openssl编程入门(含完整示例)易剑1.编写目的第一次跑起openssl示例并不太简单,本文的目的是为了让这个过程变得非常简单。在开始之前,要非常感谢周立发同学,正是通过他共享的示例,较轻松的入了门。本文档对他共享的示例中的一个小错误进行了修正,并提供了傻瓜式的“编译-生成-KEY运行”一条龙脚本(方法请参见压缩包中的readme文件),让跑第一个openssl程序变得轻轻松松。2.示例包ssl_test.tar.gzopenssl-0.9.8h-SuSE10.tar.gzssl_test.tar.gz为示例源代码包,openssl-0.9.8h-SuSE10.ta
2、r.gz为openssl二进制包,测试时是安装在/usr/local/ssl。ssl_test.tar.gz中的示例在SuSE10中测试通过,使用的是openssl-0.9.8h,它包括如下文件:-rw-r--r--1rootroot1346Dec518:11cacert.pem-rwxr-xr-x1rootroot114Dec518:11make_key.sh-rwxr-xr-x1rootroot172Dec518:37mk_client.sh-rwxr-xr-x1rootroot172Dec518:37mk_server.sh-rw-r--r--1rootroot1
3、679Dec518:11privkey.pem-rw-r--r--1rootroot167Dec518:39readme-rwxr-xr-x1rootroot38Dec518:38run_client.sh-rwxr-xr-x1rootroot64Dec518:38run_server.sh-rwxr-xr-x1rootroot1140142Dec518:38ssl_client-rw-r--r--1rootroot3928Dec517:31ssl_client.cpp-rwxr-xr-x1rootroot1139667Dec518:38ssl_server-rw-r-
4、-r--1rootroot4882Dec517:31ssl_server.cppreadme为包内容说明,run_server.sh用来运行服务端,run_client.sh用来运行客户端,mk_server.sh用来编译服务端,mk_client.sh用来编译客户端,make_key.sh用来生成钥匙KEY。openssl编程入门3.什么是SSL?在学习openssl编程之前,先了解一下什么是SSL,有助于后续的学习。SSL是一个缩写,代表的是SecureSocketsLayer。它是支持在Internet上进行安全通信的标准,并且将数据密码术集成到了协议之中。数据在
5、离开您的计算机之前就已经被加密,然后只有到达它预定的目标后才被解密。证书和密码学算法支持了这一切的运转,使用OpenSSL,您将有机会切身体会它们。理论上,如果加密的数据在到达目标之前被截取或窃听,那些数据是不可能被破解的。不过,由于计算机的变化一年比一年快,而且密码翻译方法有了新的发展,因此,SSL中使用的加密协议被破解的可能性也在增大。可以将SSL和安全连接用于Internet上任何类型的协议,不管是HTTP、POP3,还是FTP。还可以用SSL来保护Telnet会话。虽然可以用SSL保护任何连接,但是不必对每一类连接都使用SSL。如果连接传输敏感信息,则应使用SS
6、L。4.什么是openssl?openSSL不仅仅是SSL。它可以实现消息摘要、文件的加密和解密、数字证书、数字签名和随机数字。关于OpenSSL库的内容非常多,远不是一篇文章可以容纳的。OpenSSL不只是API,它还是一个命令行工具。命令行工具可以完成与API同样的工作,而且更进一步,可以测试SSL服务器和客户机。5.示例程序示例的说明请参见下面这篇周立发共享的文章。加密通讯协议SSL编程.pdf2openssl编程入门6.服务端编写步骤开始SSL_library_init()SSL_set_fd(ssl,newfd)SSL_accept(ssl)SSL库初始化so
7、cket加入到SSL建立SSL连接SSL_write(ssl,buf,OpenSSL_add_all_algorithmsSSL_new(ctx)strlen(buf))载入所有SSL算法产生一个新的SSL发消息给客户端SSL_read(ssl,buf,SSL_load_error_strings()newfd=accept(servfd)MAXBUF)载入所有SSL错误消息接收客户端的消息SSL_CTX_new(SSLv23_serverSSL_shutdown(ssl)_method())bind(servfd)关闭SSL连接产生一个
此文档下载收益归作者所有