openssl 是乙個功能豐富及自包含的安全開源工具箱,它提供的主要功能為ssl協議實現(包括sslv2、sslv3和tlsv1)、大量軟演算法(對稱/非對稱/摘要)、大數運算、非對稱演算法金鑰生成、asn.1編譯碼庫、證書請求(pkcs10)編譯碼、數字證書編譯碼、crl編譯碼、ocsp協議、數字證書驗證、pkcs7標準實現和pkcs12個人數字證書格式實現等功能,openssl是乙個以c語言作為開發語言的工具包,它支援linux、unix、windows、mac等平台,所以它具有很好的跨平台效能。
openssl整個軟體包大概可以分成三個主要的功能部分:
密碼演算法庫
ssl協議庫
應用程式
openssl原始碼的目錄結構也是圍繞這三個功能部分進行規劃的。
首先密碼演算法庫是乙個強大完整的密碼演算法庫,它是openssl的基礎部分,也是很值得一般密碼安全技術人員研究的部分,它實現了目前大部分主流的密碼演算法和標準。主要包括對稱演算法、非對稱演算法、雜湊演算法、數字簽名和認證、x509數字證書標準、pkcs12、pkcs7等標準。其他兩個功能部分ssl協議和應用程式都是基於這個庫開發的。
在密碼演算法庫的基礎上實現的,ssl協議部分完全實現和封裝了ssl協議的三個版本和tls協議。使用協議庫,你完全可以建立乙個ssl伺服器和ssl客戶端。
應用程式是基於密碼演算法庫和ssl協議庫實現的命令,熟悉openssl可以從使用這些應用程式開始。應用程式覆蓋了密碼技術的應用,主要包括了各種演算法的加密程式和各種型別金鑰的產生程式(如rsa、md5、enc等等)、證書簽發和驗證程式(如ca、x509、crl等)、ssl連線測試程式(如s_client和s_server等)以及其它的標準應用程式(如pkcs12和smime等)。
方法一
wget https:
1.1.1g.tar.gz
tar -xzvf openssl-
1.1.1g.tar.gz
cd openssl-
1.1.1g/
./config
make
sudo make install
方法二:
sudo apt-get install openssl
sudo apt-get install libssl-dev
安裝完成後可以通過which openssl
檢視路徑
通過openssl version
檢視安裝openssl庫的版本
安裝好後我從網上找了一段**來進行測試,下面貼出**
#include
#include
#include
int main()
編譯記得加上-lcrypto
結果展示:
加密過後資料長度明顯增加。如果能夠正常執行,那麼openssl的安裝基本就完成了。
上面****現的 hmac 是openssl中的加密演算法的應用,下面簡單介紹一下hmac:
函式原型是:
#include
unsigned
char
*hmac
(const evp_md *evp_md,
const
void
*key,
int key_len,
const
unsigned
char
*d,int n,
unsigned
char
*md,
unsigned
int*md_len)
;
其中第乙個引數指定hmac中所使用的具體的雜湊演算法,在這裡我們使用sha1(輸出是160bit),因此在呼叫時第乙個引數應為evp_sha1()。key和key_len顧名思義分別是金鑰儲存的首位址和金鑰的位元組數目。d和n分別指定了被雜湊的資料的起始位址和位元組數目。md表示雜湊後的結果存放的目標位址,md_len指向的int被用來記錄md的位元組數目(在這裡是160bit即20個位元組)。 Linux下編譯安裝openssl
wget 2 解壓壓縮包,例如 解壓到當前資料夾 tar zcvf openssl 1.0.1c.tar.gz c 解壓完後會生成openssl資料夾,如 openssl 1.0.1c。3 進入該資料夾,開啟install 檔案,可以看到安裝的具體步驟,按照這些步驟一步步做下來,就完成了openss...
linux下的openssl配置及糾錯
因工程中需要用到https伺服器證書來進行驗證。需要用到openssl三方庫來進行解析。2 將靜態庫路徑以及openssl 1.1.0e下的include標頭檔案包到工程目錄下。3 相應的qt ide需要新增 libs libcrypto.a libssl.a 編譯後可能會找不到undefined ...
linux下OpenSSL的RSA金鑰生成
openssl version openssl 1.0.0e.tar.gz 安裝 2 在資料夾下解壓縮,命令 tar xzf openssl openssl 1.0.0e.tar.gz 得到openssl openssl 1.0.0e資料夾 3 進入解壓的目錄 cd openssl 1.0.0e 4...