Openssl详细用法:算法
bash
openssl:多用途的命令行工具dom
libcrypto:加密算法库ide
libssl:加密模块应用库,实现了ssl及tls工具
openssl能够实现:秘钥证书管理、对称加密和非对称加密 。ui
对称加密须要使用的标准命令为 enc ,用法以下:编码
openssl enc -ciphername [-in filename] [-out filename] [-pass arg] [-e] [-d] [-a/-base64] [-A] [-k password] [-kfile filename] [-K key] [-iv IV] [-S salt] [-salt] [-nosalt] [-z] [-md] [-p] [-P] [-bufsize number] [-nopad] [-debug] [-none] [-engine id]
经常使用选项有:加密
-in filename:指定要加密的文件存放路径
-out filename:指定加密后的文件存放路径
-salt:自动插入一个随机数做为文件内容加密,默认选项
-e:能够指明一种加密算法,若不指的话将使用默认加密算法
-d:解密,解密时也能够指定算法,若不指定则使用默认算法,但必定要与加密时的算法一致
-a/-base64:使用-base64位编码格式
加密:]# openssl enc -e -des3 -a -salt -in fstab -out fstab.bak 解密:]# openssl enc -d -des3 -a -salt -in fstab.bak -out fstab
单向加密须要使用的标准命令为 dgst ,用法以下:idea
openssl dgst [-md5|-md4|-md2|-sha1|-sha|-mdc2|-ripemd160|-dss1] [-c] [-d] [-hex] [-binary] [-out filename] [-sign filename] [-keyform arg] [-passin arg] [-verify filename] [-prverify filename] [-signature filename] [-hmac key] [file...]
经常使用选项有:spa
[-md5|-md4|-md2|-sha1|-sha|-mdc2|-ripemd160|-dss1] :指定一种加密算法
-out filename:将加密的内容保存到指定文件中
示例以下:
openssl dgst -md5 f1 等价于md5sum f1
单向加密除了 openssl dgst 工具还有: md5sum,sha1sum,sha224sum,sha256sum ,sha384sum,sha512sum
示例以下:
shs512sum fstab md5sum fstab
生成密码须要使用的标准命令为 passwd ,用法以下:
openssl passwd [-crypt] [-1] [-apr1] [-salt string] [-in file] [-stdin] [-noverify] [-quiet] [-table] {password}
经常使用选项有:
-1:使用md5加密算法
-salt string:加入随机数,最多8位随机数
-in file:对输入的文件内容进行加密
-stdion:对标准输入的内容进行加密
示例以下:
openssl passwd -1 -in fstab -salt 11111
生成随机数须要用到的标准命令为 rand ,用法以下:
openssl rand [-out file] [-rand file(s)] [-base64] [-hex] num
经常使用选项有:
-out file:将生成的随机数保存至指定文件中
-base64:使用base64 编码格式
-hex:使用16进制编码格式
示例以下:
(umask 077;openssl genrsa -out test.key -des3 2048) 生成test.key私钥文件并以des3的算法加密 make /data/test.key 或者直接切换至cd /etc/pki/tls/certs下生成私钥,里边有一个makefile文件就能够自动生成私钥文件 1 openssl rsa -in test.key -out test2.key.bak 对test.key 私钥进行解密并导出文件起名叫test2.key.bak
首先须要先使用 genrsa 标准命令生成私钥,而后再使用 rsa 标准命令从私钥中提取公钥。
genrsa 的用法以下:
openssl genrsa [-out filename] [-passout arg] [-des] [-des3] [-idea] [-f4] [-3] [-rand file(s)] [-engine id] [numbits]
经常使用选项有:
-out filename:将生成的私钥保存至指定的文件中
-des|-des3|-idea:不一样的加密算法
numbits:指定生成私钥的大小,默认是2048
通常状况下秘钥文件的权限必定要控制好,只能本身读写,所以可使用 umask 命令设置生成的私钥权限,示例以下:
(umask 077;openssl genrsa -out test.key -des3 2048) 生成test.key私钥文件并以des3的算法加密 make /data/test.key 或者直接切换至cd /etc/pki/tls/certs下生成私钥,里边有一个makefile文件就能够自动生成私钥文件 openssl rsa -in test.key -out test2.key.bak 对test.key 私钥进行解密并导出文件起名叫test2.key.bak
rsa的用法以下:
openssl rsa [-inform PEM|NET|DER] [-outform PEM|NET|DER] [-in filename] [-passin arg] [-out filename] [-passout arg] [-sgckey] [-des] [-des3] [-idea] [-text] [-noout] [-modulus] [-check] [-pubin] [-pubout] [-engine id]
经常使用选项:
-in filename:指明私钥文件
-out filename:指明将提取出的公钥保存至指定文件中
-pubout:根据私钥提取出公钥
示例以下:根据私钥取出公钥
openssl rsa -in test.bak -pubout -out test.pubkey
随机数生成器:伪随机数字 键盘和鼠标,块设备中断
/dev/random:仅从熵池返回随机数;随机数用尽,阻塞
/dev/urandom:从熵池返回随机数;随机数用尽,会利用软件生成伪随机 数,非阻塞
示例:
tr -dc 'a-zA-Z0-9' < /dev/urandom 将生成的随机大小写字母、数字所有进行打印
tr:参数解释
-c或——complerment:取代全部不属于第一字符集的字符; -d或——delete:删除全部属于第一字符集的字符; -s或--squeeze-repeats:把连续重复的字符以单独一个字符表示; -t或--truncate-set1:先删除第一字符集较第二字符集多出的字符。