码迷,mamicode.com
首页 > 其他好文 > 详细

openssl加密、解密及建立私有CA

时间:2015-06-09 14:12:17      阅读:128      评论:0      收藏:0      [点我收藏+]

标签:openssl加密、解密


OpenSSL:俗称安全套接字

它可以实现数据加密:

SSL全称为:Secure Socket Layer可以在Internet上提供秘密性传输,其目标是保证两个应用间通信的保密性和可靠性,SSL能使用户/服务器应用之间的通信不被攻击者窃听,并且始终对服务器进行认证,还可选择对用户进行认证。SSL协议要求建立在可靠的传输层协议(TCP)之上。SSL协议在应用层协议通信之前就已经完成加密算法、通信密钥的协商及服务器认证工作。在此之后应用层协议所传送的数据都会被加密,从而保证通信的私密性。 

一、OpenSSL加密解密的种类及对应的算法     

1、对称加密:使用同一种算法同一个密码对数据进行加密解密;          

算法:DES、3DES、AES、Blowfish、Towfish、IDEA、RC6、CAST5     

2、非对称加密之公钥加密:公钥从私钥中提取而来,使用私钥加密的文件,只能使用公钥解密,反        之亦然;          

算法:RSA、 DSA、 ELGamal、 DH     

3、非对称加密之单向加密:只能加密,不能解密,用于提取数据的特征码。          

算法:md5、 sha系列256、384、512、128      

二、OpenSSL一次加密通信的过程:    

发送者:           

1.使用单向加密算法提取数据特征码          

2.使用自己的私钥加密特征码附加在数据后面          

3.生成用于对称加密的临时密钥           

4.用此临时密钥加密数据和已经使用私钥加密后的特征码           

5.使用接收方的公钥加密此临时密钥,附加在对称加密后的数据后放       

接受者:           

  1. 使用自己的私钥解密加密的临时密钥,从而获取对称密钥          

2.使用对称密钥解密对称加密的数据和私钥加密的特征码密文,从而获得数据和特征码密文           3.使用对方发送的公钥解密特征码密文,从而获得数据特征码           

4.使用与对方同样的党项加密算法计算出数据特征码,并与解密而来的特征码进行比较 

三、OpenSSL            

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

  1. 组成部分:        

(1)libcrypto:加密、解密库文件;  

(2)libssl: ssl协议实现  

(3)openssl:多用途命令行工具,每种功能都使用专用的子命令来实现     

2.openssl命令使用格式        

openssl command [options] [csr_file] [options] [crt_file] [options] 

#openssl+子命令+选项+参数    

3.命令的分类:

    标准命令

    消息摘要命令

    加密、解密相关的命令

4.可以通过输入openssl a 回车可以查看子命令

技术分享

    可以再次使用man命令来查看子命令的用法

四、使用OpenSSL加密、解密文件

1.对称加密

                        使用enc工具:

加密:# openssl enc -e -CIPHERNAME -a -salt -in /PATH/FROM/SOMEFILE -out /PATH/TO/SOMECIPHERFILE     

                                             技术分享

解密:# openssl enc -d -CIPHERNAME -a -salt -in /PATH/FROM/SOMECIPHERFILE -out /PATH/TO/SOMEFILE

                                            技术分享

单向加密:

提取文件特征码

# openssl dgst -CIPHER /PATH/TO/SOMEFILE...

                        技术分享

生成用户密码:

# openssl passwd -1 -salt 8bits随机数

                        技术分享

                                                 -1:默认为md5算法

生成随机数:

# openssl rand -hex|-base64 NUM

                        技术分享

                                               -base64:文本编码

                                                NUM:生成位数

                可以使用生成的随机数来生成密码:

                技术分享  技术分享      

                码自动保存在/etc/shadow

公钥加密生成密钥对儿:

    操作过程:生成私钥

    # openssl genrsa -out /PATH/TO/PRIVATE_KEYFILE NUM_BITS

                                         技术分享             从私钥中手动提取公钥:

   # openssl rsa -in /PATH/FROM/PRIVATE_KEY_FILE -pubout

                                        技术分享



openssl加密、解密及建立私有CA

标签:openssl加密、解密

原文地址:http://10086101.blog.51cto.com/10076101/1659879

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!