1995 年, Eric A. Young 和 Tim J. Hudson 发明了 SSLeay,它是 SSL(Open-source Secure Sockets) 协议的实现。1998 年,Young 和 Hudson 中止了对 SSLeay 的维护,开始在澳大利亚为 RSA 工做。
后来我便出现了,是基于 SSLeay 从新创建了分支,正式起名为 OpenSSL。我开源并且免费,能够商用。
我主要有两个做用:
1.我实现了 SSL/TSL 协议,可用于 Web 服务器数据安全传输,好比 Node.js 的 TSL 模块就是基于我实现的;git
2.我仍是一个密码库,用来保证计算机网络中的通讯安全,实现了各类加解密算法,好比 RSA,DES。我还能够作签名;github
我使用 C 语言实现,这样能够更好地实现跨平台,而且其它语言也有相关的框架实现,其实它们底层使用的仍是我。
总的来讲我其实就是一个软件包,提供了 TSL/SSL 协议的实现,而且是一个密码库,实现了很是多的加密算法,好比 RSA,DES。可是个人结构很复杂,扩展性也很是好。
我主要包含如下三部份内容:
总体代码架构以下:
关于我更多的内容能够查看:
https://github.com/openssl/openssl
在百度百科上,我是被这样定义的:
在计算机网络上,OpenSSL是一个开放源代码的软件库包,应用程序可使用这个包来进行安全通讯,避免窃听,同时确认另外一端链接者的身份。这个包普遍被应用在互联网的网页服务器上。
SSL是Secure Sockets Layer(安全套接层协议)的缩写,能够在Internet上提供秘密性传输。Netscape公司在推出第一个Web浏览器的同时,提出了SSL协议标准。其目标是保证两个应用间通讯的保密性和可靠性,可在服务器端和用户端同时实现支持。已经成为Internet上保密通信的工业标准。
使用
Mac 会自动安装了 OpenSSL 命令工具,打开终端命令工具便可使用。
1.使用 RSA 算法进行加密解密
生成 RSA 公钥、私钥钥匙对。
提取公钥:
使用公钥加密文件:
使用私钥解密文件:算法