Openssl加密解密原理与命令使用
2014-08-02 12:50
387 查看
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 #输出路径
示例:对称加密文件(大家可以加密一些私密东西,嘻嘻!!冷笑话)
[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:
# openssl dgst [-md5|-sha1] [-out/path/to/filename] /path/from/somefile #单向加密格式并指定路径
示例:[root@localhost /]# openssl dgst -md5 -out /hong inittab ---输出到指定文件中 [root@localhost/]# cat hong
MD5(inittab)=f7b815b06c5734e8aab5b3ece75a6ae
#openssl passwd -1 –salt 12345 ---------生成用户密码
命令解释:
-1:MD5加密算法
-salt 12345: 自己指定佐料12345
# openssl rand -base64|-hex num ---生成随机数:
示例:
[root@localhost /]# openssl rand -hex 4
cc86f4c0
生成私钥:
# (umask 077;openssl genrsa -out /path/to/keyfileNUMBEROFBITS )当前用户生成私钥并储存至指定的文件中,并给生成的私钥文件一个权限。示例:[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
比如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 #输出路径
示例:对称加密文件(大家可以加密一些私密东西,嘻嘻!!冷笑话)
[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:
# openssl dgst [-md5|-sha1] [-out/path/to/filename] /path/from/somefile #单向加密格式并指定路径
示例:[root@localhost /]# openssl dgst -md5 -out /hong inittab ---输出到指定文件中 [root@localhost/]# cat hong
MD5(inittab)=f7b815b06c5734e8aab5b3ece75a6ae
#openssl passwd -1 –salt 12345 ---------生成用户密码
命令解释:
-1:MD5加密算法
-salt 12345: 自己指定佐料12345
# openssl rand -base64|-hex num ---生成随机数:
示例:
[root@localhost /]# openssl rand -hex 4
cc86f4c0
生成私钥:
# (umask 077;openssl genrsa -out /path/to/keyfileNUMBEROFBITS )当前用户生成私钥并储存至指定的文件中,并给生成的私钥文件一个权限。示例:[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
相关文章推荐
- Openssl加密解密原理与命令使用
- 使用openssl命令进行加密解密及散列运算的命令行
- 实用命令:利用openssl进行BASE64编码解码、md5/sha1摘要、AES/DES3加密解密
- RSA非对称加密,使用OpenSSL生成证书,iOS加密,java解密
- linux下使用openssl对文件RSA加密解密
- 实用命令:利用openssl进行BASE64编码解码、md5/sha1摘要、AES/DES3加密解密
- AES加密和解密——使用openssl编程
- 使用tar与OpenSSL加密解密
- rsa 网站openssl加密解密 使用心得
- java中Base64转码与解码(加密与解密)原理与使用
- linux下使用openssl对文件RSA加密解密
- 实用命令:利用openssl进行BASE64编码解码、md5/sha1摘要、AES/DES3加密解密
- openssl 加密解密原理小结
- 20150920 加密和解密原理 Open SSL OPEN SSH使用
- 使用openssl进行加密解密
- Linux加密解密 及使用openssl工具实现CA
- PKI架构的简介,如何使用OPENSSL完成加密与解密,如何自建CA完成证书的签署。
- 加密、解密的原理及Openssl创建CA和ssh的基础应用
- 加密解密原理和基于Openssl构建自有CA