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 模块就是基于我实现的;
2.我还是一个密码库,用来保证计算机网络中的通信安全,实现了各种加解密算法,比如 RSA,DES。我还可以做签名;
我使用 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 公钥、私钥钥匙对。
提取公钥:
使用公钥加密文件:
使用私钥解密文件:
2. openssl 支持的命令行