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 支持的命令行推荐阅读:
第 12 天:从 0 徒手实现一个 HTTP Server
用故事说透 HTTPS