openssl命令杂记

openssl命令行

openssl基础

显示openssl版本号

[[email protected] ~]# openssl version
OpenSSL 1.0.1e-fips 11 Feb 2013
[[email protected] ~]# 

enc

[[email protected] ~]# whatis enc
enc (1ssl)           - symmetric cipher routines

给文件加密

[[email protected] tmp]# openssl enc -e -des3 -a -salt -in fstab -out fstab.ciphertext        -e:加密格式;-a:基于文本编码;-salt:自动加入杂志;-in:加密哪个文件;-out:输出到哪个路径  

enter des-ede3-cbc encryption password:
Verifying - enter des-ede3-cbc encryption password:
[[email protected] tmp]# rm fstab
rm: remove regular file ‘fstab’? y
[[email protected] tmp]# cat fstab.ciphertext
U2FsdGVkX19TOyfPaUaIYrL3f6FYQiOtsVxUOZBUsAbz+9uYXkjM4Wd9xvbz4Fpu
YwRWE8XyiQOnofveK3EoNOuma628gxfyQwQUNYm2j+Jo2OY7eMsdZ8Tqq6bY22pb
n3CRCurVKR/uZ6sNe8GxkPo4NeEyPB9qdpgpV9xo52zY4HUxqkeiJ98XizNe1Yqn
IoKqWxM24dG6O6nBnZL77qPVXfvNLmvjSXBloMXv3ZqWwO1KND/z2UCCeKnEn4Qv
9a3XLybBcTvi2oMMFOd/ouptPMsDdJgpF2dM/P5SXihVH5cbqDoVIxdxd2s98Nl6
h0E1zXzRumph12Ko3KgEd/GU/sq9rTKyB9OiSsQgh1+SaeatDrbJwZTNuTz9vztS
J3UnPzOgl0GIVSx1UDdb6lbfBhR/36YtRZHEqtCS6TjQKizJKSy/7jzqHFjMmxcJ
XlHyun4bgR4dMZ+TMqjoDgu9qGgw4yGeRgMR+fKUGiXZPbWdFD12DwESqL1NfQ5f
wQpqr/YEMtEgeXHPL4fHps1rgYFRXlvFcR+hiO2wPwTxrllY0psaM2cifC0F0vH3

文件解密

[[email protected] tmp]#
[[email protected] tmp]# openssl enc -d -des3 -a -salt -in fstab.ciphertext -out fstab
enter des-ede3-cbc decryption password:
[[email protected] tmp]# ls
fstab  fstab.ciphertext
[[email protected] tmp]# cat fstab

#
# /etc/fstab
# Created by anaconda on Thu Jun 16 09:45:02 2016
#
# Accessible filesystems, by reference, are maintained under ‘/dev/disk‘
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
UUID=61a8ab18-e2f0-4857-bf8e-a8e534b08c9c /                       xfs     defaults        0 0
UUID=4c401c24-2f32-49af-96e5-bc2ea947387a /boot                   xfs     defaults        0 0

dgst

[[email protected] tmp]# whatis dgst
dgst (1ssl)          - message digests

不同工具,使用同种算法,得出的结果一样

[[email protected] tmp]# md5sum fstab
c68a89b85a3b2177fee40201320acd35  fstab
[[email protected] tmp]# openssl dgst -md5 fstab
MD5(fstab)= c68a89b85a3b2177fee40201320acd35
[[email protected] tmp]# 

[[email protected] tmp]# openssl dgst -md5 -hex fstab #默认十六进制编码
MD5(fstab)= c68a89b85a3b2177fee40201320acd35

passwd

[[email protected] tmp]# whatis passwd
passwd (1)           - update user‘s authentication tokens
sslpasswd (1ssl)     - compute password hashes  ***
passwd (5)           - password file

MD5加密

-1:MD5;-salt 123:加入杂质;
[[email protected] tmp]# openssl passwd -1 -salt 123
Password:
$1$123$nE5gIYTYiF1PIXVOFjQaW/
[[email protected] tmp]# 

rand生成随机数

生成64位和16进制随机数

[[email protected] tmp]# openssl rand -base64 4
rLMepA==
[[email protected] tmp]# openssl rand -hex 4
3d386d6e                    #4个字节,8位16进制

rsautl

[[email protected] tmp]# whatis rsautl
rsautl (1ssl)        - RSA utility

genrsa

[[email protected] tmp]# whatis genrsa
genrsa (1ssl)        - generate an RSA private key

生成随机数设备

[[email protected] tmp]# ls /dev | egrep "random|uinput"
random
uinput

random和urandom

[[email protected] tmp]# whatis random
random (3)           - random number generator

[[email protected] tmp]# whatis urandom
urandom (4)          - kernel random number source devices
[[email protected] tmp]# 

生成私钥

[[email protected] tmp]# openssl genrsa -out rsakey.private 2048
Generating RSA private key, 2048 bit long modulus
......+++
............+++
e is 65537 (0x10001)
[[email protected] tmp]# cat rsakey.private
-----BEGIN RSA PRIVATE KEY-----
MIIEpQIBAAKCAQEA6vl3ePFVYl3DirG1dqgb/PRmjrAuSwmGp/9MligRjDA1Uo7y
dkDHEmiAGb6Ubt5w4T5B525bQMqD0TsG1lRwH6Gc9awd5ct1tR29m+lSobFqFvrJ
W558k25G3C7OEXie1+vc8AiA2cKiLgE9MckPWiBARK9C0UqUUiHOd6Z6kjDflr0p
uSuKuvnoOUWyLe3WVj5vpA4jYxyFGiqW8E3Crh8aVExnsH8rdE3V4EuWASzGOmGG
XjN+F7Hm6hKgOFBazN5o2RAQ3/PknduQrSBYvkOQKHoaDpi+hFWSu7V6PCZd9nl7
uKt5D3i4W+4IrrTuiWN+/3pLJhzijB3sT2pZIQIDAQABAoIBAQDGQqGE4ZQawGSa
ZOFo8eVTpN/X613UIICGxYnYdIyBzbdgJo78KiIOLTBRCJXziiqSUtaGsH28iGN6
qiRVub81YUavn39GgkqZ/DMdF1yKY8jRBN/bNzmDqBuP8soawby9ER1FRtd5ZZkz
2gXJOQ2EDQxNJ9foAdZuCmpMWKK5L3erw1pqSmroiR8vOUFdyNi044STOtOlf4C2
3D/5AvyMgfVzo2KsR6QDnMeQyAbJwYMHyP/5/0/Xv3rNmag0HK0vCiOfWJxCtIFH
2Pvbw8q1EbIGlAWnw75BQk/DwlNf3j2cgxkPC9HhClMso/n6FlYr5sCM0/dMWsll
+TuW7B4xAoGBAPq5pY+JsWh7yNUjwYdWv2c8gkRosC03FTzho8ScZUhg3z/diieF
RRMP5GQfcJRHQ201LRyMlx24x/t6HbcFLMhJp5xVoo26/7CN9WC/Qkj8VMI/U58k
o3hsqjYl24BaZksdDTh9MwVyWbq97Wu5i3UzvEVmnchRUjSal1bMlPY1AoGBAO/q
/W9tugsyURkxheMFsFY2m8Tn/d8PTllq+sdSdsFGaMPN3B1PVy+c5K/JYo/UxU/1
fL8Zg/9868TZhaeTt2pdz3pt5jmR9Sloa2PPHD+AsP/cvi9EopqZpVkHj9xv4Q6S
n+XfSZ1mkyZOcpSWT3eqtlRAWMDr0/QehaCzMMS9AoGAD/fu8XtljzADFIAYfVQr
EJor+ctpHRgbBCui0IzdboSs81ZazDWStqoWc8IE24zGYJg4bU8O+Neh9QRMDDIK
Lh9yy2Qw3DICwu3nqOfFgvx/MXfzDXm555uUI6q5li0rwrDw/J4Mt9YWnOwnyOqi
VS6cWRc2CWIUiEEoTmDtQ9kCgYEAthpXY0yV+gmnJMhCJ58ZyVaJxVuRhs3HWnep
AcHGAc2/l1+Zw2WFd85Ohl8FQMbvPVHH7gUf+7yF+FRi7l9gyIuMABGKvgfbXiKz
4H5Doq+7qXmToa0m/tHAf2MN/vOsj7MbSw/AgIhrCJhiwAWXK+2XlzuAIm7d4l2I
cAGS8sECgYEAuqa7Yv+WbeovFutgnExdmvvO0Z0oHb1tkwUI+RG/uwJOQdzpMsNE
Osk1HWfao3nu7P+4v5WFFDbqA0kyCO0mTIT/gBy8je+d4iWfdsl1HtINim6lp6cL
560wSJSWgiJXo0fX5YlLvW9DS7ZIhTOkip32bGcpyyBSGO/6Kqt85CA=
-----END RSA PRIVATE KEY-----

通过私钥文件输出公钥信息

[[email protected] tmp]# openssl rsa -in rsakey.private -pubout
writing RSA key
-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA6vl3ePFVYl3DirG1dqgb
/PRmjrAuSwmGp/9MligRjDA1Uo7ydkDHEmiAGb6Ubt5w4T5B525bQMqD0TsG1lRw
H6Gc9awd5ct1tR29m+lSobFqFvrJW558k25G3C7OEXie1+vc8AiA2cKiLgE9MckP
WiBARK9C0UqUUiHOd6Z6kjDflr0puSuKuvnoOUWyLe3WVj5vpA4jYxyFGiqW8E3C
rh8aVExnsH8rdE3V4EuWASzGOmGGXjN+F7Hm6hKgOFBazN5o2RAQ3/PknduQrSBY
vkOQKHoaDpi+hFWSu7V6PCZd9nl7uKt5D3i4W+4IrrTuiWN+/3pLJhzijB3sT2pZ
IQIDAQAB
-----END PUBLIC KEY-----

优化密钥文件

[[email protected] tmp]# chmod og= rsakey.private
[[email protected] tmp]# ll rsakey.private
-rw-------. 1 root root 1679 Aug  5 20:59 rsakey.private
[[email protected] tmp]# 

两步一起做,小括号代表在子shell设置,不影响自身shell,只在子shell生效

[[email protected] tmp]# (umask 077; openssl genrsa -out key.pri 2048)
Generating RSA private key, 2048 bit long modulus
...+++
..............+++
e is 65537 (0x10001)
[[email protected] tmp]# ll key.pri
-rw-------. 1 root root 1679 Aug  5 21:06 key.pri

原文地址:http://blog.51cto.com/zhongle21/2091435

时间: 2024-08-24 06:20:40

openssl命令杂记的相关文章

OpenSSL命令行工具

数据的加密解密对于Linux系统来说,是至关重要的一个概念,必须懂的对数据进行保护,上次我们详细说了关于数据加密的种种方式,如公钥加密,单向加密,密钥交换等,以及认证机构CA的存在:而OpenSSL命令就是一个可以帮助我们实现公钥加密,创建私钥,并根据私钥创建出公钥:还可以进行单向加密,生成随机数,对用户的密码进行加密操作:还有一点,就是可以利用OpenSSL自己认证生成私人CA,用户可以根据OpenSSL命令生成CA请求证书,并将此证书发给有公信力的CA进行认证,产生一个CA证书用来证明用户:

openssl命令用法

openssl命令 配置文件:/etc/pki/tls/openssl.cnf 命令格式: openssl command [ command_opts ] [ command_args ] 众多子命令,常用有以下几项: 1.对称加密 openssl enc -[e/d] [-a] [-salt] -Cipher -in /PATH/TO/SOMEFILE -out /PATH/TO/SOMEFILE -e:加密 -d:解密 -a:将数据变为base64编码 -salt:添加随机数 -Ciphe

使用 openssl 命令行构建 CA \b及证书(一)

使用 openssl 命令行构建 CA \b及证书 这是一篇快速指南,使用 OpenSSL 来生成 CA (证书授权中心certificate authority).中级 CAintermediate CA和末端证书end certificate.包括 OCSP.CRL 和 CA颁发者Issuer信息.具体颁发和失效日期. 我们将设置我们自己的根 CAroot CA,然后使用根 CA 生成一个示例的中级 CA,并使用中级 CA 签发最终用户证书. 为根 CA 创建一个目录,并进入: mkdir

OpenSSL命令---ciphers

OpenSSL命令---ciphers 摘自http://blog.csdn.net/as3luyuan123/article/details/13609819 用途: 指令是用来展示用于SSL加密算法的工具.它能够把所有openssl支持的加密算法按照一定规律排列(一般是加密强度).这样可以用来做测试工具,决定使用什么加密算法. 用法: [cpp] view plain copy print? openssl ciphers [-v] [-ssl2] [-ssl3] [-tls1] [ciph

OpenSSL命令系列

1.1 ssl命令系列前言 openssl命令的格式是"openssl command command-options args",command部分有很多种命令,这些命令需要依赖于openssl命令才能执行,所以称为伪命令(pseudo-command),每个伪命令都有各自的功能,可以直接man command查看命令的用法和功能.想搞明白openssl命令,需要搞懂这些伪命令先. 1.2 openssl总指挥 以下是openssl命令的用法.常用命令加粗显示了,在文末附上了我对这些

MySQL 命令杂记

mysql> show processlist; 如果是root帐号,你能看到所有用户的当前连接.如果是其它普通帐号,只能看到自己占用的连接.show processlist;只列出前100条,如果想全列出请使用show full processlist; mysql> show status; mysql> show status like '%下面变量%'; Aborted_clients 由于客户没有正确关闭连接已经死掉,已经放弃的连接数量. Aborted_connects 尝试

openssl命令行工具简介 - 指令x509

原文链接: http://blog.csdn.net/allwtg/article/details/4982507 openssl命令行工具简介 - 指令x509 用法:           openssl x509 [-inform DER|PEM|NET] [-outform DER|PEM|NET]            [-keyform DER|PEM][-CAform DER|PEM] [-CAkeyform DER|PEM]            [-in filename][-o

用OpenSSL命令行生成证书文件(客户端)

证书文件生成 也许很多人和本人一样深有体会,使用OpenSSL库写一个加密通讯过程,代码很容易就写出来了,可是整个工作却花了了好几天.除将程序编译成功外(没有可以使用的证书文件,编译成功了,它并不能跑起来,并不表示它能正常使用,所以--),还需生成必要的证书和私钥文件使双方能够成功验证对方. 找了n多的资料,很多是说的很模糊,看了n多的英文资料,还是没有办法(不知道是不是外国朋友都比较厉害,不用说明得太清?),无意间找到yawl([email protected])写的文章,难得的汉字(呵呵).

(2) OpenSSL命令

openssl命令的格式是"openssl command command-options args",command部分有很多种命令,这些命令需要依赖于openssl命令才能执行,所以称为伪命令(pseudo-command),每个伪命令都有各自的功能,大部分command都可以直接man command查看命令的用法和功能. 以下是openssl支持的伪命令,常用命令或可能用的上的命令加粗加红显示了 [[email protected] ~]# openssl --help ope