您的位置:首页 > 运维架构

OpenSSL应用:Cipher commands详解

2016-01-07 19:34 465 查看
一、OpenSSL命令工具应用
1.Linux系统加密解密基于协议的开源实现:OpenSSL(基于ssl)、GPG(基于pgp) OpenSSL
是一个强大的安全套接字层密码库,囊括主要的密码算法、常用的密钥和证书封装管理功能及SSL协议,并提供丰富的应用程序供测试或其它目的使用。
2.OpenSSL组成: libencrypt库:加密解密协议; libssl库:实现SSL库;openssl:多用途命令行工具 libencrypt和bssl库为开发者开发实现库调用
3.OpenSSL命令组成: 标准命令、消息摘要命令(dgst子命令)、加密命令(enc子命令)Standard
commandsasn1parse 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
Message
Digest commands (see the `dgst' command for more details)md2 md4 md5 rmd160 sha sha1 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

二、OpenSSL多用途命令行工具

1.OpenSSL完成对称加密:enc 支持的算法:3des,
aes, blowfish, towfish enc命令:-:直接指明算法-e:加密-d:解密-a:base64 process
the data.Base64编码格式,不指明则为二进制编码格式-salt:加密时加入杂质-in:加密文件-out:输出文件 加密:~]#
openssl enc -e
-des3 -a -salt
-in fstab
-out fstab.ciphertext 解密:~]#
openssl enc -d
-des3 -a -salt
-out fstab -in fstab.ciphertext


2.OpenSSL完成单向加密 工具:openssl
dgst, md5sum, sha1sum, sha224sum, … 生成方式不同,但是加密算法相同则生成的特征码相同 dgst命令: ~]#
openssl dgst -md5
/PATH/TO/SOMEFILE


3.OpenSSL完成随机数生成 工具:openssl rand,默认生成二进制格式,每次生成不同

~]# openssl rand
-hex NUM 采用十六进制编码~]# openssl rand
-base64 NUM 采用Base64编码格式NUM:表示指明生成的随机数字的长度Base64编码显示后"=="是其标准格式,真正使用时要去除

扩展:可以用一些命令如dd,从Linux系统上的随机数生成器读取随机数 /dev/random:仅从熵池返回随机数;随机数用尽,阻塞; /dev/urandom:从熵池返回随机数;随机数用尽,会利用软件生成伪随机数(不安全),非阻塞;熵池中随机数的来源:硬盘IO中断时间间隔;键盘IO中断时间间隔;
4.OpenSSL完成生成用户加密密码: 工具:passwd,
openssl passwd 用法:openssl
passwd -1 -salt
SALT
1)-salt后面可以直接引用随机书生成 [root@localhost
~]# openssl passwd -1 -salt $(openssl rand -hex 5)


2)-后面能直接加算法,1表示passwd的加密算法为md5-base,可选项如下


3)密码相同时候,所加SALT只要有一点不同就会产生雪崩效应


5.OpenSSL完成公钥加密: 工具:openssl rsautl, gpg 加密解密算法:RSA,ELGamal 数字签名算法:RSA, DSA, ELGamal 密钥交换算法:DH
6.OpenSSL生成密钥对;genrsa #
openssl genrsa NUM
-out FILE -out
FILE:指明保存文件 NUM一般为1024的倍数

注意: 生成的密钥对也可以使用输出重定向导出到指定文件,但时此时的文件权限要仅为自己可读可写 # (umask 077;openssl genrsa NUM
-out FILE) 放在括号中的命令要放在子shell运行此进程,umask仅对子shell中的进程起作用,主进程无影响


7.OpenSSL提取公钥[root@localhost tmp]# openssl rsa -in Key_FILE -pubout



本文出自 “许鼎的博客” 博客,请务必保留此出处http://xuding.blog.51cto.com/4890434/1732675
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: