出处:http://wodemeng.blog.51cto.com/1384120/1534121/


Openssl加密解密原理:

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

python openssl 加密文件 openssl密码加密_数据

加密原理:

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

 

解密原理:

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

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

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


申请证书

     怎么可靠得到对方的公钥?

     这里我们引出了CA证书颁发机构; A向CA索要证书,CA进行审核后进行颁发证书。

           

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

python openssl 加密文件 openssl密码加密_加密_02

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

A进行解密验证证书:

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

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

 

公钥加密算法:

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

:只能用于身份验证

单向加密算法:

md5:128bits

              sha1:160bits

              sha256

              sha384

              sha512

对称加密算法:

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

是DES的3倍安全性

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

 

 

 

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


查看openssl版本信息

加密数据模块大小所用的时间

对称加密的格式

对称解密密的格式

对称算法

加密机制

是基于base64来处理数据

加点佐料

输入路径

输出路径


示例:对称加密文件(大家可以加密一些私密东西,嘻嘻!!冷笑话)

[root@wukuiyum.repos.d]# openssl enc -des3 -a -salt -in ning.repo.old -out ningrepo

                     enterdes-ede3-cbc encryption password:

                     Verifying- enter des-ede3-cbc encryption password:

单向加密格式并指定路径

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

                     [root@localhost/]# cat hong

                     MD5(inittab)=f7b815b06c5734e8aab5b3ece75a6ae


生成用户密码

        命令解释: 

加密算法

: 自己指定佐料12345

生成随机数:

示例:

              [root@localhost /]# openssl rand -hex 4

                     cc86f4c0


生成私钥:

当前用户生成私钥并储存至指定的文件中,并给生成的私钥文件一个权限。

示例:[root@wukui 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

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

           writing RSA key

本文出自 “奋斗的人” 博客,请务必保留此出处http://wodemeng.blog.51cto.com/1384120/1534121