OpenSSL应用:Cipher commands详解

一、OpenSSL命令工具应用

1.Linux系统加密解密基于协议的开源实现:OpenSSL(基于ssl)、GPG(基于pgp)

OpenSSL
是一个强大的安全套接字层密码库,囊括主要的密码算法、常用的密钥和证书封装管理功能及SSL协议,并提供丰富的应用程序供测试或其它目的使用。

2.OpenSSL组成:

libencrypt库:加密解密协议;  libssl库:实现SSL库;openssl:多用途命令行工具

libencrypt和bssl库为开发者开发实现库调用

3.OpenSSL命令组成:

标准命令、消息摘要命令(dgst子命令)、加密命令(enc子命令)

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

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完成对称加密:eennc

支持的算法: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后面可以直接引用随机书生成

[[email protected]
~]# 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提取公钥

[[email protected] tmp]# openssl rsa -in Key_FILE   -pubout

时间: 2024-10-04 04:29:34

OpenSSL应用:Cipher commands详解的相关文章

Linux的加密认证功能以及openssl详解

一.详细介绍加密.解密技术 现在的加密/解密技术主要有三种:对称加密,非对称加密,和单向加密 这三种加密解密技术的组合就是现在电子商务的基础,它们三个有各自最适合的领域,而且所要完成的功能也是不同的,大家都知道,只要我们连上互联网,那么我们就相当于大门洞开,我们的一些隐私,跟其他人对话内容等都有可能会被人窃听,最常见的比如man in the middle(中间人),它主要是因为双方身份无法验证的时候回话被劫持造成的,就是说通信双方都以为是在跟对方交流,其实内容都可能已经被这个“中间人”修改过,

加密 解密过程详解及openssl自建CA  

            加密 解密过程详解及openssl自建CA 为了数据信息能够安全的传输要求数据要有一定的安全性那么数据的安全性包含哪些方面的特性呢?    NIST(美国信息安全署)做了如下的定义:    保密性:       1,数据的保密性 指的是数据或隐私不向非授权者泄漏                   2,隐私性  信息不被随意的收集    完整性:       1,数据的的完整性:信息或程序只能被指定或授权的方式改变不能被随意的             修改        

CentOS6.5环境下OpenSSL实战:自己搭建CA中心,申请,签发,吊销,导入证书,SSL 握手详解

CentOS6.5环境下OpenSSL实战: 自己搭建CA中心,申请,签发,吊销,导入证书,SSL 握手详解

加密、解密原理和openssl自建CA过程详解

一.加密和解密相关知识简介 1.信息安全标准 NIST(National Institute of Standards and Technology)美国国家标准与技术研究院,制定了网络信息安全与保密的三个要素: 保密性(confidentiality):信息不泄露给非授权用户.实体或过程,或供其利用的特性.(一般包括数据保密性.隐私性.) 完整性(Integrity):数据未经授权不能进行改变的特性.即信息在存储或传输过程中保持不被修改.不被破坏和丢失的特性.(一般包括数据完整性.系统完整性.

CentOS7安装nagios并配置出图详解

目录 开始之前 系统环境 监控内容 所需软件包 Centos7重要变化 配置开发环境 同步时间 关闭Selinux 使用CRT上传软件包 安装邮件服务 监控主机安装 常用到的命令 安装nagios所需要的运行环境 增加用户 安装nagios 配置权限 安装插件 安装nrpe 远程主机安装 常用到的命令 配置运行环境 安装nagios-plugin 安装nrpe 启动nrpe. 监控主机安装PNP 配置开发环境 安装php4nagios (版本号为0.6) 配置pnp4nagios 图表展示 问题

详解https是如何确保安全的?

Https介绍 1 什么是Https HTTPS(全称:Hypertext Transfer Protocol over Secure Socket Layer),是以安全为目标的HTTP通道,简单讲是HTTP的安全版.即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL 2 Https的作用 内容加密 建立一个信息安全通道,来保证数据传输的安全: 身份认证 确认网站的真实性 数据完整性 防止内容被第三方冒充或者篡改 3 Https的劣势 对数据进行加解密决定了

centos系统下pip安装使用详解

pip类似RedHat里面的yum,安装Python包非常方便.本节详细介绍pip的安装.以及使用方法. 一.pip下载安装 1.1 pip下载 wget "https://pypi.python.org/packages/source/p/pip/pip-1.5.4.tar.gz#md5=834b2904f92d46aaa333267fb1c922bb" --no-check-certificate 1.2 pip安装 # tar -xzvf pip-1.5.4.tar.gz # c

linux--ab压力测试详解

简介     ab是Apache自带的压力测试工具,全称是ApacheBench,ab是Apache的一个安装组件,所以需要安装Apache后才可以使用,该命令位于Apache安装目录下的bin文件夹中,ab是专门用于HTTP Server的benchmark testing,可以同时模拟多个并发请求,ab的设计意图是描绘当前所安装的Apache的执行性能,主要是显示所安装的Apache每秒可以处理多少个请求,ab同微软的WAST.HP的LoadRunner.QALoad等比起来,它要方便易用得

YUM安装调试以及命令详解

背景,需要安装cacti,google了很多安装资料,需要先yum安装一些准备lib包,比如snmp以及openssl等等. [[email protected] ~]# yum install net-snmp-devel Loaded plugins: rhnplugin, security This system is not registered with RHN. RHN support will be disabled. Setting up Install Process No p