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 回車可以查看子命令

wKiom1V1p77Aiy0KAABKjKQMUow949.jpg

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

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

1.對稱加密

                        使用enc工具:

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

                                             wKioL1V1sLzj-HfJAABp862D_oE289.jpg

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

                                            wKiom1V1rsCByNKlAACk-NUy-OY911.jpg

單向加密:

提取文件特徵碼

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

                        wKioL1V1saiQXomIAAA9WWju2As596.jpg

生成用戶密碼:

# openssl passwd -1 -salt 8bits隨機數

                        wKioL1V1sjTyjBhiAAA_ZaBhOfY437.jpg

                                                 -1:默認爲md5算法

生成隨機數:

# openssl rand -hex|-base64 NUM

                        wKiom1V1seWABjT3AABBGiuaZfs152.jpg

                                               -base64:文本編碼

                                                NUM:生成位數

                可以使用生成的隨機數來生成密碼:

                spacer.gif  wKiom1V1smfh4NHTAACbqCbf5c8086.jpg      

                碼自動保存在/etc/shadow

公鑰加密生成密鑰對兒:

    操作過程:生成私鑰

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

                                         wKioL1V1tlbgXlmeAACNLG-gzg4278.jpg             從私鑰中手動提取公鑰:

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

                                        wKioL1V1txSxulGDAAFD9-zyjQA858.jpg



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章