出处:http://wodemeng.blog.51cto.com/1384120/1534121/
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进行解密验证证书:
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