骏马金龙 (新博客:www.junmajinlong.com)

网名骏马金龙,钟情于IT世界里的各种原理和实现机制,强迫症重症患者。爱研究、爱翻译、爱分享。特借此一亩三分田记录自己成长点滴!!!

OpenSSL命令系列

openssl系列文章:http://www.cnblogs.com/f-ck-need-u/p/7048359.html


1.1 ssl命令系列前言

openssl命令的格式是"openssl command command-options args",command部分有很多种命令,这些命令需要依赖于openssl命令才能执行,所以称为伪命令(pseudo-command),每个伪命令都有各自的功能,大部分command都可以直接man command查看命令的用法和功能。

1.2 openssl总指挥

以下是openssl支持的伪命令,常用命令或可能用的上的命令加粗加红显示了,这些命令的用户在后面的文章中会一一介绍。

[root@xuexi ~]# openssl --help
openssl:Error: '--help' is an invalid command.
 
# 支持的标准命令,即伪命令
Standard commands
asn1parse         ca                ciphers           cms              
crl               crl2pkcs7         dgst              dh               
dhparam           dsa               dsaparam          ec               
ecparam           enc               engine            errstr           
gendh             gendsa            genpkey           genrsa           
nseq              ocsp              passwd            pkcs12            
pkcs7             pkcs8             pkey              pkeyparam        
pkeyutl           prime             rand              req              
rsa               rsautl            s_client          s_server         
s_time            sess_id           smime             speed             
spkac             ts                verify            version          
x509             
 
# 指定"dgst"命令时即单向加密支持的算法,实际上支持更多的算法,具体见dgst命令
Message Digest commands (see the `dgst' command for more details)
md2               md4               md5               rmd160           
sha               sha1             


# 指定对称加密"enc"时支持的对称加密算法
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       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          zlib             

看上去非常复杂?其实不复杂,只是伪命令多点而已,而且很多伪命令经常用到的选项也就1到两个。

以下是各伪命令的选项"-passin"和"-passout"可能使用到的密码传递格式,“-passin”指的是传递解密时的密码,"-passout"指的是传递加密输出文件时的密码。如果不给定密码格式,将提示从终端输入。这一点在后面的文章中将不再细述。

格式一:pass:password   :password表示传递的明文密码

格式二:env:var               :从环境变量var获取密码值

格式三:file:filename        :filename文件中的第一行为要传递的密码。若filename同时传递给"-passin"和"-passout"选项,则filename的第一行为"-passin"的值,第二行为"-passout"的值

格式四:stdin                   :从标准输入中获取要传递的密码

例如,要加密某个密钥文件,使得每次使用该密钥文件都需要输入密码,则使用"-passout"指定加密密码,当使用被加密的密钥文件时需要解密,使用"-passin"传递解密密码。

posted @ 2016-11-22 16:02  骏马金龙  阅读(8064)  评论(2编辑  收藏  举报