Openssl加密解密原理与命令使用--尚未完善

Openssl加密解密原理:

示例:

比如A与B通信发送数据:

加密原理:

在A把要发送的内容通过单向加密方式进行数据指纹计算,计算出数据指纹后,会用自己的私钥加密数据指纹,并把加密的数据指纹添加到原数据的后面。然后对整个数据(原数据+数据指纹)进行对称加密算法进行计算(让明文转换成密文),得出的数据为整个数据的密码,再用B的公钥进行这个密码进行加密,并放到这个数据的后面一并发给B。

解密原理:

1、B用自己的私钥能够解密---------至此说明数据保密的。

2、B用私钥解密出来的密码,去解密整个数据得到明文(从密文转换成明文),B拿到数据后,会用A的    公钥去解密,能够解密说明是A发过来的。------到此能确定A的身份

3、B会用A的公钥解密出来的数据的特征码, B会用单向加密算法对数据进行加密,得出特征码与用公   钥解密出来的特征码进行比较,相同则说明数据是完整的----------到此能够确定数据的完整性

怎么可靠得到对方的公钥?这里我们引出了CA证书颁发机构

A向CA索要证书,CA进行审核后进行颁发证书。

颁发证书的过程怎么保证证书的完整性:

CA加密:CA会通过A提供的信息生成证书,并会对证书进行单向加密,生成数据指纹放到证书的后              面,CA在用自己的私钥对整个数据(证书+数据指纹)进行加密一并发给A。

A进行解密验证证书

1、  A收到证书后会用CA的公钥进行解密,如果能够解密----说明证书是CA颁发的

2、  A在用单向加密计算数据得出特征码,并与用CA公钥解密出来的特征码进行比较,相同说明证书         是完整的------能够得出证书的完整性,没有在传输中被串改过。

公钥加密算法:

RSA:用户身份验证和数据的加密解密

DSA:只能用于身份验证

单向加密算法:

md5:128bits

sha1:160bits

sha256

sha384

sha512

对称加密算法:

DES,数据加密标准,转轮机。56位密钥算法

3DES,是DES的3倍安全性

AES:目前常用的高级加密算法 、128位、256位,512,384,

基本命令使用方法和示例:

#openssl version                 #查看openssl版本信息

#openssl speed md4             #MD4加密数据模块大小所用的时间

# openssl enc -des3 -a -salt -in /path/from/somefile-out /path/to/somecipherfile #对称加密的格式

# openssl enc -d -des3 -a -salt -in/path/from/somecipherfile -out /path/to/somefile #对称解密密的格式

enc        #对称算法

-des3     #加密机制

-a           #是基于base64来处理数据

-salt        #加点佐料

-in          #输入路径

-out        #输出路径

示例:加密[[email protected]]# openssl enc -des3 -a -salt -in ning.repo.old -out ningrepo

enterdes-ede3-cbc encryption password:

Verifying- enter des-ede3-cbc encryption password:

# openssl dgst [-md5|-sha1] [-out/path/to/filename] /path/from/somefile #单向加密格式并指定路径

示例:[[email protected] /]# openssl dgst -md5 -out /hong inittab ---输出到指定文件中

[[email protected]/]# cat hong

MD5(inittab)=f7b815b06c5734e8aab5b3ece75a6ae

#openssl passwd -1 –salt 12345 ---------生成用户密码

-1:MD5加密算法

-salt12345: 自己指定佐料

# openssl rand -base64|-hex  num ---生成随机数:

示例:

[[email protected] /]# openssl rand -hex 4

cc86f4c0

生成私钥:

# (umask 077;openssl genrsa  -out /path/to/keyfileNUMBEROFBITS )当前用户生成私钥并储存至指定的文件中,并给生成的私钥文件一个权限。

示例:[[email protected] yum.repos.d]# (umask 077 ;openssl genrsa -out ning3 2048)

Generating RSA private key, 2048 bitlong modulus

...................+++

.........................................................................................................+++

e is 65537 (0x10001)

提取公钥:

# openssl rsa-in /path/from/private_key_file –pubout

示例:[[email protected] /]# openssl rsa -in ning3 -pubout -out ning4---把提出出来的公钥输出到一个文件中

writing RSA key

Openssl加密解密原理与命令使用--尚未完善

时间: 2024-10-14 00:10:58

Openssl加密解密原理与命令使用--尚未完善的相关文章

Linux运维之加密/解密原理、自建CA及搭建基于https的Apache

上几次博文我们具体讨论了Apache(httpd)的基础知识: HTTP协议基础(参见博文:http://sweetpotato.blog.51cto.com/533893/1656137) Apache2.2的基本配置(参见博文:http://sweetpotato.blog.51cto.com/533893/1657668) Apache2.2的虚拟主机(参见博文:http://sweetpotato.blog.51cto.com/533893/1660229) 本次博文我们具体讨论下加密/

openssl加解密原理及私有CA的建立

一.openssl加解密原理 数据加密解密过程数据加密需要实现的功能:数据私密性,数据完整性,身份认证和秘钥交换. 美国NIST,为了计算机的安全,提出了几个要求: 1.数据保密性   数据保密性   隐私性 2.完整性    数据完整性   系统完整性 3.可用性 4.真实性 && 可追溯性 OSI:x.800  安全攻击:   被动攻击:窃听   主动攻击:伪装.重播.消息修改.拒绝服务  安全机制:   加密.数字签名.访问控制.数据完整性.认证交换.流量填充.路由控制.公证  安全

Base64加密解密原理以及代码实现(VC++)

Base64加密解密原理以及代码实现 转自:http://blog.csdn.net/jacky_dai/article/details/4698461 1. Base64使用A--Z,a--z,0--9,+,/ 这64个字符.    2. 编码原理:将3个字节转换成4个字节( (3 X 8) = 24 = (4 X 6) )先读入3个字节,每读一个字节,左移8位,再右移四次,每次6位,这样就有4个字节了.    3. 解码原理:将4个字节转换成3个字节.先读入4个6位(用或运算),每次左移6位

加密解密原理和基于Openssl构建自有CA

一.加密解密过程描述: 互联网数据传输需要实现:数据隐秘性,数据完整性,身份认证和密钥交换: 例如:Alice向Bob传输数据: 数据加密过程: 1.Alice生成原数据,用单向加密算法计算出原数据的特征码: 2.用自己的私钥加密原数据特征码并附加在原数据的后面: 3.用对称加密算法为整个数据加密生成对称加密密匙: 4.用Bob提供的公钥加密对称加密密匙,并附加在加密的数据后面一并发送给Bob. 数据解密过程: 1.Bob接收到数据,用自己的私钥解密对称加密密匙:确定数据接收方Bob的身份: 2

openssl 加密 解密 应用及CA的实现

一 现在的加密/解密技术主要有三种:对称加密,公钥加密,和单向加密 对称加密:指的是加密方和解密方使用的是同一个密钥 特性: 1 加密.解密使用同一个秘钥: 2 将原始数据分割成固定大小的块,逐个进行加密 算法:DES  3DES  AES 公钥加密:秘钥是成对出现 公钥:公开给所有人: pubkey 私钥:自己留存,必须保证去私密性:secret key 特点:用公钥加密的数据只能用与之配对的私钥解密,反之亦然: 特性: 数字签名:用于接收方确认发送方的身份 秘钥交换:发送方用对方的公钥加密一

openSSL加密解密

一.前言 openSSL是套开放源代码的软件库包,实现了SSL与TLS协议.其主要库是以C语言所写成,实现了基本的加密功能. OpenSSL可以运行在绝大多数类Unix操作系统上(包括Solaris,Linux,Mac OS X与各种版本的开放源代码BSD操作系统),OpenVMS与 Microsoft Windows.它也提供了一个移植版本,可以在IBM i(OS/400)上运作. openssl有三个部分组成.一是libcryto.这是一个具有通用功能的加密库.里面实现了众多的加密库.二是l

openssl加密解密与创建CA

前言 目前网络上比较流行的服务类协议如http,ftp,smtp,pop3等本身是不具备加密解密功能的都明文传输的,在早期网络设计的初期由于服务器的数量非常少,当然网络的安全也是不会被重视的.但随着互联网的不断发展,安全方面也成为人们比较关心的问题之一,后来网警公司先为http研发了一种可被调用的公共功能的库,这个库就被放在了TCP/IP模型的传输层与应用层之间,是一个半层的库,任何不具备加解密的程序在研发时可调用这个库也可以不用调这个库,用与不用都可以实现传输功能,这个库就叫做SSL;正如我们

Base64加密解密原理以及代码实现

1. Base64使用A--Z,a--z,0--9,+,/ 这64个字符.    2. 编码原理:将3个字节转换成4个字节( (3 X 8) = 24 = (4 X 6) )先读入3个字节,每读一个字节,左移8位,再右移四次,每次6位,这样就有4个字节了.    3. 解码原理:将4个字节转换成3个字节.先读入4个6位(用或运算),每次左移6位,再右移3次,每次8位.这样就还原了. Base64是一种非经常见的编码规范,其作用是将二进制序列转换为人类可读的ASCII字符序列,经常使用在需用通过文

laravel cookie加密解密原理

通过控制台的 cookie 信息我们会发现,每次请求之后,关键的 cookie,如PHPSESSID.XSRF-TOKEN 都会发生变化,并且都是很长的一串字符串. 其实这是一个 json 数组,其中包含了 iv,value,mac 三个字段: 这些字段都是在框架加密解密的时候使用的,加密方法是 openssl_encrypt: 对 openssl 不太了解的可以看下下面的例子: $data = 'laravel'; $iv = random_bytes(16); $key = 'this is