OpenSSL非常强大,从加密/解密到证书的创建与管理,几乎无所不能,这篇文章简单介绍一下openssl的概要信息以及openssl命令的使用示例。

概要信息

OpenSSL的概要信息如下表所示:

项目 说明
官网 https://www.openssl.org/
开源/闭源 开源
源码管理地址 https://github.com/openssl/openssl
License类别 Apache License 2.0
开发语言 C、Perl
当前稳定版本 1.1.1d (2019/9/10)

架构设计

当前版本的OpenSSL整体主要由四个部分组成:

  • Application Component:应用组件
  • TLS Component:TLS组件
  • Crypto Component:加密算法组件
  • Engines Component:引擎组件
    详细如下图所示,可以看到应用组件依赖于TLS组件与加密算法组件,而TLS组件也依赖于加密算法组件,而加密算法组件依赖于引擎组件。

后续变化

根据OpenSSL官方对于架构的蓝图规划,在当前的1.1.1之后将会进行大的变动,预计在3.0.0版中完成主要功能的演进,一部分功能延续到4.0.0,目前设计和公示的整体架构如下所示:

其中最大的影响之一在于Engine组件完成其历史使命,将会由Provide来代替,但是对于上层的既存的应用比如openssl命令来说,影响并没有这么大,OpenSSL官方规划目标是在3.0.0的版本中对于大量的既存应用组件尽可能的少影响,对于大部分应用做到只需要重新编译即可。

openssl命令

openssl是OpenSSL架构中应用层的具体体现,本位开始的示例,使用的openssl版本为1.1.1d的LTS版本,此版本维护周期大概至2023年。

[root@liumiaocn ~]# openssl version
OpenSSL 1.1.1d  10 Sep 2019
[root@liumiaocn ~]#

概要使用方法

使用openssl help可以列出命令的常用子命令

[root@liumiaocn ~]# openssl help
Standard commands
asn1parse         ca                ciphers           cms
crl               crl2pkcs7         dgst              dhparam
dsa               dsaparam          ec                ecparam
enc               engine            errstr            gendsa
genpkey           genrsa            help              list
nseq              ocsp              passwd            pkcs12
pkcs7             pkcs8             pkey              pkeyparam
pkeyutl           prime             rand              rehash
req               rsa               rsautl            s_client
s_server          s_time            sess_id           smime
speed             spkac             srp               storeutl
ts                verify            version           x509              Message Digest commands (see the `dgst' command for more details)
blake2b512        blake2s256        gost              md4
md5               mdc2              rmd160            sha1
sha224            sha256            sha3-224          sha3-256
sha3-384          sha3-512          sha384            sha512
sha512-224        sha512-256        shake128          shake256
sm3               Cipher commands (see the `enc' command for more details)
aes-128-cbc       aes-128-ecb       aes-192-cbc       aes-192-ecb
aes-256-cbc       aes-256-ecb       aria-128-cbc      aria-128-cfb
aria-128-cfb1     aria-128-cfb8     aria-128-ctr      aria-128-ecb
aria-128-ofb      aria-192-cbc      aria-192-cfb      aria-192-cfb1
aria-192-cfb8     aria-192-ctr      aria-192-ecb      aria-192-ofb
aria-256-cbc      aria-256-cfb      aria-256-cfb1     aria-256-cfb8
aria-256-ctr      aria-256-ecb      aria-256-ofb      base64
bf                bf-cbc            bf-cfb            bf-ecb
bf-ofb            camellia-128-cbc  camellia-128-ecb  camellia-192-cbc
camellia-192-ecb  camellia-256-cbc  camellia-256-ecb  cast
cast-cbc          cast5-cbc         cast5-cfb         cast5-ecb
cast5-ofb         des               des-cbc           des-cfb
des-ecb           des-ede           des-ede-cbc       des-ede-cfb
des-ede-ofb       des-ede3          des-ede3-cbc      des-ede3-cfb
des-ede3-ofb      des-ofb           des3              desx
idea              idea-cbc          idea-cfb          idea-ecb
idea-ofb          rc2               rc2-40-cbc        rc2-64-cbc
rc2-cbc           rc2-cfb           rc2-ecb           rc2-ofb
rc4               rc4-40            seed              seed-cbc
seed-cfb          seed-ecb          seed-ofb          sm4-cbc
sm4-cfb           sm4-ctr           sm4-ecb           sm4-ofb           [root@liumiaocn ~]#

使用示例

这里举几个最为简单的使用,比如对于liumiaocn这个字符串使用不同算法进行加密:

[root@liumiaocn ~]# echo -n "liumiaocn" |openssl md5
(stdin)= 51179b257c8c176c3f7141ae7dceab98
[root@liumiaocn ~]#
[root@liumiaocn ~]# echo -n "liumiaocn" |openssl sha256
(stdin)= 801762886944d06c7c9cde7aa66b766ae30f31dce69d00ac0d59c67d62a3a36e
[root@liumiaocn ~]#
[root@liumiaocn ~]# echo -n "liumiaocn" |openssl base64
bGl1bWlhb2Nu
[root@liumiaocn ~]#

base64不是是加密算法,只是编码方式,但是架不住结果长得像加密后的内容。我们使用base64或者sha256sum也可以验证一下openssl命令是否正确

[root@liumiaocn ~]# echo -n "liumiaocn" |base64
bGl1bWlhb2Nu
[root@liumiaocn ~]# echo -n "liumiaocn" |sha256sum
801762886944d06c7c9cde7aa66b766ae30f31dce69d00ac0d59c67d62a3a36e  -
[root@liumiaocn ~]#

可以看到,结果是一致的。当然openssl当然完全不止于这点功能,我们将在后续的内容中进一步介绍其常用的使用方法。

SSL基础:3:OpenSSL概要介绍相关推荐

  1. SSL与OpenSSL关系介绍

    SSL与OpenSSL关系介绍  OpenSSL简介 SSL是Secure Socket Layer(安全套接层协议)的缩写,可以在Internet上提供秘密性传输.Netscape公司在推出第一个W ...

  2. python2.7使用教程_Python 2.7基础教程之:概要介绍

    .. _tut-informal: ************************************************** An Informal Introduction to Pyt ...

  3. SSL 基础(zz)

    SSL 基础(zz) http://blogold.chinaunix.net/u/23381/showart_271713.html 某项目的业务系统要求在用户使用的过程使用数字证书.在刚接手这个任 ...

  4. c++服务器开发 之一 概要介绍

    c++服务器开发 之一 概要介绍 背景 指的是普通的c++服务器开发,不涉及特定的需求,仅涉及需要实现大众功能的系统. 假设读者对c++的基础概念都有所了解. 目前很多这类的培训课程,但是没什么书系统 ...

  5. php 7.1 openssl安装,介绍 php7.1 安装openssl扩展,php openssl

    介绍 php7.1 安装openssl扩展介绍php7.1安装心脏出血扩展,PHP7栏目介绍php7.1 安装openssl扩展的方法 推荐(免费):PHP7 在安装(同脉冲亮度分析仪)脉冲振幅分析器 ...

  6. SAP Fiori Elements 公开课第一单元概要介绍

    Open SAP 课程地址 很多 SAP 从业者反映,open SAP 上的视频,因为网络原因无法访问,所以我会陆续在我的个人微 信 号"汪子熙"上面,把这些视频配上中文字幕并发布 ...

  7. redis入门综合概要介绍

    redis入门综合概要介绍 概要介绍:个人感觉redis是一个将数据保存在内存的存取工具,类似一个增强的Map,所以存取比较快.数据的存取基本上是set(key,value),get(key)这种ke ...

  8. 智能家居(七) —— 人脸识别 翔云平台编程使用(编译openSSL支持libcurl的https访问、安装SSL依赖库openSSL)

    人工智能OCR识别平台介绍 OCR (Optical Character Recognition,光学字符识别) 百度搜索OCR识别,可以发现有很多大厂都在做这个项目,比如百度OCR,腾讯OCR,科大 ...

  9. OpenSSL漏洞介绍

    OpenSSL漏洞介绍 漏洞简介: 2014年4月7日OpenSSL发布了安全公告,在OpenSSL1.0.1版本的心跳包模块存在严重漏洞(CVE-2014-0160).攻击者可以通过构造特殊的数据包 ...

最新文章

  1. 长沙理工大学计算机系教师,长沙理工大学数学与计算机科学学院导师介绍:王晚生...
  2. Hadoop4.2HDFS测试报告之四
  3. 【蓝桥杯】算法提高 7-2求arccos值
  4. [笔记]路由器与交换机的区别
  5. PMP:4.项目整合管理
  6. Redis系统性介绍
  7. 统计在从1到n的正整数中1出现的次数
  8. 的生物合成方式主要包括_J EXP BOT 综述| 植物次级代谢产物在调控微生物组组分及功能中的作用...
  9. LeetCode——最小栈
  10. 转:windows xp 安装MYSQL 出现Error 1045 access denied 的解决方法
  11. iMX8 Android SDK 下载
  12. 微信小程序开源源码汇总
  13. 手机移动端日期时间控件lcalenda
  14. 单体民宿小程序开发运营方案
  15. PDF转CAD怎么弄?推荐两个转换方法
  16. 新睿云 亚马逊_一窥新发现的亚马逊欺诈检测器
  17. 从乡巴佬到世界首富,连续7年蝉联全球最大公司:真正厉害的人,都敢于不走寻常路...
  18. 一张纸厚度是多少毫米_10张纸的厚度大约是多少10张纸能有多厚
  19. 【Matlab】数据插值
  20. ctfshow_pwn03

热门文章

  1. metamask连接私链错误:could not fetch chain ID. Is your RPC URL correct?
  2. DMA技术和及其SG模式
  3. php微信刷卡支付开发,【微信支付】刷卡支付开发者文档
  4. 使用STM32F103C8T6驱动NRF24L01具体步骤
  5. 苹果M2驱动的MacBook Air拆解测评 详细了解新款Air其内部
  6. 日本东京的穷人是怎样的生活水平?
  7. Yii2搭建后台并实现rbac权限控制完整实例教程
  8. nfl定理_NFL 2020预览与python团队防御
  9. Postman-newman基础用法
  10. 商品服务3-三级分类-查询展示三级分类数据