您当前的位置: 首页 >  ssl

暂无认证

  • 0浏览

    0关注

    92582博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

SSL基础:3:OpenSSL概要介绍

发布时间:2019-12-09 06:10:02 ,浏览量:0

在这里插入图片描述 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当然完全不止于这点功能,我们将在后续的内容中进一步介绍其常用的使用方法。

关注
打赏
1653961664
查看更多评论
立即登录/注册

微信扫码登录

1.7556s